본문 바로가기

CS/컴퓨터 구조38

[Chapter 3.3 컴퓨터 구조 및 설계] 2진수 나눗셈, 나눗셈 하드웨어 본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson, 존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다. 2진수 나눗셈 2진수 곱셈이 어떻게 이루어지는지 보기에 앞서 십진수의 1001010 나누기 1000을 하는 과정을 살펴보자. Dividend를 보통 피제수(나눗셈을 당한다) Divisor를 보통 제수 Quotient를 몫 나머지를 Remainder라고 부른다. 보통 초등학교에서 배운 나눗셈 방법은 얼마나 큰 수를 뺄 수 있는지를 검사해서 몫의 자리 수를 하나하나 구한다. 위의 십진수 예는 0과 1 만을 사용하도록 선택하였으므로 제수가 피제수에 얼마나 많이 들어갈 수 있는지 쉽게 알 수 있다. 이진수에는 0과 1만 있으므로, 이진수 나눗셈은.. 2022. 7. 12.
[Chapter 3.2 컴퓨터 구조 및 설계] 2진수 곱셈, 곱셈 하드웨어 본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson, 존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다. 2진수 곱셈 2진수 곱셈이 어떻게 이루어지는지 보기에 앞서 십진수의 1000 곱하기 1001을 하는 과정을 살펴보자. Multiplicand를 보통 피승수 (곱셈을 당한다) Multipler를 승수 최종결과를 곱(Product) 이라고 부른다. 즉, 우리는 0과 1만의 세계에선, 다음과 같은 단계만 거치면 된다. 승수의 자리 수가 1이면 피승수(1X피승수)를 해당 위치에 복사한다. 승수의 자리 수가 0이면 0(0X피승수)을 해당 위치에 복사한다. 초기의 곱셈 하드웨어 Multiplicand는 64bit로 초기엔 좌측의 32bit가 0으로 .. 2022. 7. 12.
[Chapter 3.1 컴퓨터 구조 및 설계] 2의 보수의 덧셈 뺄셈, overflow detecting 본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson, 존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다. 32bit 2의 보수 표현 앞서 2의 보수 표현을 다룬 적이 있는데, 컴퓨터에선 32비트의 수를 연산을 할 것이기 때문에 32비트의 수도 2의 보수로 표현할 수 있어야한다. 32비트의 부호있는 수의 표현은 다음과 같다. 32비트에서도 마찬가지로, 모든 비트를 반대로 바꾸고, 1을 더하면 그 수의 2의 보수가 된다. MIPS ALU Unit MIPS에서는 산술 연산 혹은 논리 연산을 가진 명령어가 매우 많다. add, addi, addiu, addu sub, subu mult, multu, div, divu sqrt and, andi, no.. 2022. 7. 12.
[Chapter 2.7 컴퓨터 구조 및 설계] 프로그램 번역과 실행 컴파일러와 어셈블러,Linker와 Loader,동적 링크 라이브러리 본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson, 존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다. 프로그램 번역과 실행 과정 컴파일러 C언어 즉, High level language에서 컴파일러에 의해 어셈블리어 혹은 (요즘 대부분) 어셈블리 언어 프로그램으로 변환된다. 유의해야 할 점은 컴파일러는 같은 기능을 하지만 다양한 어셈블리어를 만들어낼 수 있다는 것을 기억해야 한다. ( 1:다 구조) 어셈블러 어셈블러의 주된 역할은 어셈플리 프로그램을 기계어로 번역하는 일이다. 어셈블러는 어셈블리 언어 프로그램을 목적 파일(object file)로 바꾼다. 목적 파일에는 기계어 명령어, 데이터, 명령어를 메모리에 적절히 배치하기 위해 필요한.. 2022. 7. 11.