글 잘 읽었다 고맙다
니 말은 코어가 4웨이면 제어 유닛(니말에 따르면 처리기)이 1클럭당 한방에 4개씩 명령어 처리.(그 4개가 동시에 들어와서 순서 어떻게되는건 지가 알아서 비순차적 뭐시기로 처리.)
근데 한방에 4개씩 처리하면 레지스터가 1개짜리면 코어가 노는 시간이 생겨서 손해인데 레지스터 2개로 해버리면 레지스터엔 계속 데이터 남아서 코어가 놀지 않고 빠릿빠릿하게 4개씩 가져온다는 소리지? 이게 멀티 쓰레드라는거고?
야 근데 여기서 문제가 니 말대로 비순차적으로 명령어들을 잘 섞어서 처리하자너.
최초에 1클럭 돌 때 4개가 다음과 같이
1번 명령어 a = 10;
2번 명령어 b = 10;
3번 명령어 c = 10;
4번 명령어 d = a+b;
요딴 걸 처리하라고 들어왔으면 4번 명령어는 1,2번이 처리되기 전까지 처리를 못하잖아.
그럼 다음 2번째 클럭 돌기 전까지 다른 레지스터 뒤져서 4번을 딴놈으로 바꿔버리고 저 4개 전체를 한방에 명령어 처리한다.
이게 멀티쓰레드란 말이지?
멀티 아닌 쓰레드는 2클럭 돌기 전까지 다른 레지스터 뒤져서 4번을 딴놈으로 바꿔치기 못해서 딜레이 생기고.
이게 하드웨어적인 멀티쓰레드 맞음? 내가 이해 잘한 것?
명령어는 각 코어당 한개씩들어가지 여러개가 동시에 들어가는게 아님
몬말이냐 그럼 한개씩 들어가면 어캐 멀티쓰레드가 돼ㅡㅡ 딱국이가 틀렸단 말임?
쓰레드 하나 실행하다가 분기나 메모리 액세스 때문에 쉬어야 되면 다른 쓰레드를 실행시키는 방식으로 1코어에서도 하드웨어 멀티쓰레딩이 되는 거임. 실제로 실행되는 건 1물리코어1클럭당 (최대) 1인스트럭션이지. 그냥 상식적으로 생각해봐라 딱국은 8코어 16쓰레딩보고 4way smt 이러는 거보면 뭐 제대로 아는게 없는듯
어 그러네? 니말도 일리가 잇네? 시바 누가 맞말하는거야