2011-11-17 2 views

답변

2

CPU 아키텍처를 연구하는 데 사용되는 DLX 또는 RISC와 같은 간단한 프로세서에서 어떻게 작동하는지 보여 드리겠습니다.

add $R1, 0, $R2 

명령이 CPU는 소스 피연산자를 읽어 작동

mov $R1, $R2 

또는 (RISC 스타일 아키텍처) (& T 구문 AT 또는 $ R2에 $ R1 복사)

: R1은 register file이고 0은 ... 피연산자 또는 제로 생성기 일 수 있습니다. 두 입력을 모두 Arithmetic Logic Unit (ALU)에 전달하십시오. ALU는 첫 번째 소스 피연산자를 대상 (A + 0 = A)에 전달하고 ALU 이후에 대상을 레지스터 파일 (R2 슬롯)에 다시 쓰는 작업을 수행합니다.

그래서 데이터 소스 레지스터에서만 읽혀질되고 이 동작 변경되지; 대상 레지스터의 데이터는 소스 레지스터 데이터의 복사본이있는을 덮어 씁니다. (목적지 레지스터의 이전 상태 with generating of heat 손실 될 것이다.) 물리적 레벨에서

를 레지스터 파일에있는 레지스터가 그들 각각의 M1, M2에 기초하여, 플립 플롭 두 인버터 (이중 안정하다 SRAM cells의 설정 , M3, M4) 및 추가 게이트 쓰기 및 읽기 :

우리 SRAM 셀에 저장된 값을 덮어 쓸지

SRAM cell (wiki, PD File:SRAM_Cell_(6_Transistors).svg) 우리 BL 설정되며 -BL 우리의 데이터 (0 비트 저장에 기재된 - BL 및 unset -BL을 설정하고 비트 1 - BL 및 BL을 저장하도록 설정합니다. 쓰기가 현재 셀 집합 (줄)에 대해 활성화됩니다 (WL이 켜져 있으며 M5와 M6이 열림). M5와 M6을 열면, BL과 -BL은 (SR-latch에서와 같이) 쌍 안정 플립 플롭의 상태를 바꿀 것이다. 따라서 새로운 값이 기록되고 이전 값이 삭제됩니다 (BL 및 -BL로 요금이 누설 됨).

+0

와우! Landauer의 원리는 멋지다! 이런 식으로 생각하지 마십시오. –

+0

아직도 논쟁의 여지가 없다는 것을 알아야합니다. 그것은 하한이고 현대 CPU (Wt 수십 가지)에 대한 Wt의 <2/100 (최악의 경우 추정)입니다. 그러나 그것은 양자 컴퓨터의 주요 제한 요소입니다. (양자 레지스터를 돌이킬 수 없게 재 작성하면 과열되어 양자 속성을 잃게됩니다.) 따라서 [Quantum gates] (http://en.wikipedia.org/wiki/Quantum_gate)는 동일한 수의 입출력을 가지며, 모든 계산은 최종 상태에서 시작 상태로 복원 (반전) 될 수 있습니다. – osgx

관련 문제