내가 생각하는 방식은 세탁물과 비슷합니다. CPU 명령어는 많은 양의 세탁물과 같습니다. 각 하중에 대해 세탁기와 건조기를 모두 사용해야합니다. 각각 실행하는 데 30 분이 걸린다고 가정 해 봅시다. 이것이 클럭 사이클입니다. 오래된 CPU는 세탁기를 가동 한 다음 건조기를 가동하여 매번 세탁물을 마칠 때마다 60 분 (2 사이클)이 소요됩니다.
파이프 라이닝 : 파이프 라인은 두 가지를 동시에 사용할 때입니다.로드를 씻은 다음 건조하는 동안 다음로드를 씻습니다. 첫 번째 부하는 완료하는 데 2주기가 걸리지 만 두 번째 부하는 1주기 더 완료된 후에 완료됩니다. 따라서 대부분의 하중은 첫 번째 하중을 제외하고 1 주기만 필요합니다.
Superscalar : 세탁소를 세탁실로 가져갑니다. 2 개의 와셔를 가져 와서 모두로드하십시오. 완료되면 2 개의 건조기를 찾아 두 가지를 모두 사용하십시오. 이제 60 분 안에 2 개의로드를 세척하고 건조 할 수 있습니다. 그것은 2주기에서 2로드입니다. 각로드에는 여전히 2주기가 걸리지 만 더 많은 작업을 수행 할 수 있습니다. 평균 시간은 이제 사이클 당 1로드입니다.
파이프 라이닝이 포함 된 수퍼 스칼라 : 처음 2 개의 하중을 씻은 다음 건조하는 동안 다음 2 개의 하중으로 와셔를 로딩하십시오. 이제 처음 2 번의로드는 여전히 2 사이클이 걸리고 그 다음 2 번은 1 번 더 사이클 후 완료됩니다. 따라서 대부분의 경우 각 사이클에서 2 개의 하중을 완료합니다.
다중 코어 : 세탁기 2 개와 건조기 2 개가있는 세탁소의 절반을 어머니에게 제공하십시오. 두 사람이 함께 일하면 두 배나 더 많은 일을 할 수 있습니다. 이것은 수퍼 스칼라와 비슷하지만 약간 다릅니다. 모든 세탁물을 각 기계로 직접 옮길 필요없이, 그녀는 당신과 동시에 그것을 할 수 있습니다.
이것은 좋은, 우리는 할 수있는 여덟 배 더 빠른 컴퓨터를 만들 필요없이, 동일한 시간에 세탁 이전보다. (클럭 속도 두 배 : 세탁기는 15 분이면 작동합니다.)
이제 어떻게 일이 잘못되는지 이야기 해 봅시다.
파이프 라인 버블 : 세척 과정에서 얼룩이 나오지 않아 다시 세척하기로 결정했습니다. 이제 건조기가 거기에 앉아 무언가를 기다리고 있습니다.
캐시 미스 (Cash Miss) : 더러운 세탁물을 배달하는 트럭이 교통 체증에 걸려 있습니다. 이제 2 개의 와셔와 2 개의 건조기가 있지만 기다릴 필요가 없어 작업이 완료되지 않습니다.
일이 얼마나 자주 잘못되는지에 따라주기마다 4 번의로드를 항상 수행 할 수는 없으므로 실제 수행되는 작업량은 다를 수 있습니다.
지점 예측 : 글쎄, 나중에 옷을 더럽혀 서 이미 깨끗해 질 수 있도록 깨끗한 옷을 세탁하기 시작합니다 ... 좋아요. 이것이 비유가 깨지는 곳입니다 ...