[컴퓨터시스템구조] 19. 프로세서(논리 설계, 조합 요소, 논리 요소)
소개 CPU 성능 요인 명령어 수(Instruction count) : ISA, 컴파일러에 의해 결정 CPI와 사이클시간(Cycle time) : CPU 하드웨어에 따라 결정 두 가지 MIPS 구현을 검토할 것이다. 1. 단순화된 버전 2. 현실적인 파이프라인 버전 단순 하위 집합으로 대부분의 측면을 보여줌 메모리 참조 : lw, sw 산술/논리 : add, sub, and, or, slt 제어 전달 : beq, j 명령어 실행 PC → 명령어 메모리, 명령어 가져오기 레지스터 번호 → 파일 등록, 레지스터 읽기 명령어 class에 따라 다르다. ALU를 사용하여 계산 산술 결과 로드/저장을 위한 메모리 주소 지점 대상 주소 로드/저장을 위해 데이터 메모리에 액세스 PC : 대상 주소 or PC + 4(..
2023. 11. 6.
[컴퓨터시스템구조] 16. 컴퓨터 산술(mult, mfhi, mflo, mul, div)
컴퓨터 산술 정수(integer) 연산 덧셈, 뺄셈 곱셈, 나눗셈 오버플로 처리 부동소수점 실수(Floating-point real number) 표현 및 연산자 산술 논리 장치(ALU) 정수 이진수의 산술/비트를 연산하는 조합 디지털 전자 회로 CPU, FPU, GPU를 포함한 다양한 컴퓨팅 회로의 기본 구성 요소 하나의 CPU, FPU, GPU에는 여러 ALU가 포함될 수 있다. 정수 덧셈 예) 7 + 6 결과가 범위를 벗어나면 오버플로가 발생한다. '+', '-' 피연산자 더하기 오버플로 없음 두 개의 '+' 피연산자 더하기 결과 부호(sign bit)가 1인 경우 : 오버플로 두 개의 '-' 피연산자 더하기 결과 부호(sign bit)가 0인 경우 : 오버플로 정수 뺄셈 두 번째 피연산자 부정 예..
2023. 10. 15.
[컴퓨터시스템구조] 15. MIPS 배열 vs. 포인터
배열 vs. 포인터 배열 인덱싱 찾으려면 요소 크기에 인덱스를 곱해야한다. 배열 기본 주소에 추가 포인터는 메모리 주소에 직접적으로 대응한다. 인덱싱 복잡성을 피할 수 있다. 배열 C 코드 clear1(int array[], int size) { int i; for (i = 0; i < size; i += 1) array[i] = 0; } i : $t0 array 주소 : $a0 size : $a1 MIPS 코드 move $t0, $zero # i=0 loop1: sll $t1, $t0, 2 # $t1=i*4 add $t2, $a0, $t1 # $t2=&array[i] sw $zero, 0($t2) # array[i]=0 addi $t0, $t0, 1 # i+=1 slt $t3, $t0, $a1 # i
2023. 10. 15.