본 이야기는
https://voidint.com/2020/10/14/cpu-gpu-tpu-npu/
의 포스팅을 정리한 내용입니다.. 본문이 더 깔끔해요!
이번에 이야기 할 것들
출처 : wikipedia (von Neumann architecture)
TMI : cpu는 기계어를 실행시킨다
TMI2 : cpu는 프로세서 마다 기계어 종류가 다를수 있다.!
cpu에서 1+2 = 3이라는 연산이 실행시켜보기
LDR : CPU 내부의 레지스터로 데이터 가져옴
STR : CPU 내부의 레지스터에서 메모리로 데이터 보내기
ADD : 두개의 레지스터의 데이터 값을 더하고 다른 레지스터에 저장하기
LDR reg1, #1; // reg1 레지스터에 상수 1 로드
LDR reg2, #2; // reg2 레지스터에 상수 2 로드
ADD reg1, reg2, reg3; // reg1 값과 reg2 값을 더해 reg3 에 저장
STR reg3, [0x00040222h]; // reg3 의 값을 0x00040222 메모리로 내보냄
간단한 ISA(프로세서가 실행할수 있는 기계어 모음)를 가정한 assemble 프로그렘
첫 reg 에 1 저장, 두째 reg에 2 저장
ALU를 이용 두 레지에 저장된 값을 세번째 레지스터에 저장
계산 결과를 메모리 주소를 지정하여서 내보내기!
Controller 에 의해 어셈블리 프로그램은 순차적으로 Program Counter 로 올라가고 실행될 것입니다. 프로세서는 LDR, ADD, STR 과 같은 Instruction 에 대해 무엇을 해야 하는지 알고 있으므로, 해당 동작을 클럭이 뜰 때마다 기계적으로 수행합니다. 4 클럭이 지나면 계산이 완료되어 메모리에 결과값이 저장될 것입니다.