글 잘 읽었다 고맙다


니 말은 코어가 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번을 딴놈으로 바꿔치기 못해서 딜레이 생기고.

이게 하드웨어적인 멀티쓰레드 맞음? 내가 이해 잘한 것?