본문 바로가기

CS/컴퓨터구조9

[컴퓨터구조] 4 프로세서 (4.6 파이프라이닝 개요) ※"컴퓨터 구조 및 설계 6판 MIPS EDITION" 책을 간단하게 정리한 내용의 글입니다.※4.6 파이프라이닝 개요파이프라이닝(pipelining)은 여러 명령어가 중첩되어 실행되는 구현 기술이다.파이프라이닝의 역설적인 점은 파이프라이닝을 한다고 해서 어떤 작업 하나를 완료하는 데 걸리는 시간은 줄일 수 없지만, 여러 작업에 대해서는 전체 걸리는 시간이 줄어든다는 점이다.파이프라이닝에서 속도 향상은 파이프라인 단계 수와 같다. 단계 수가 4단계인 경우에는 속도가 4배 향상될 것이다.하지만 실제로는 파이프라이닝의 시작과 끝 부분에서는 모든 단계가 가득 차있지 않기 때문에 4배의 속도 향상은 될 수 없다. 대신 작업 수가 많을 수록 4배에 근접하게 된다.단일 사이클 구현에서 클럭 사이클은 가장 느린 명령.. 2024. 11. 19.
[컴퓨터구조] 4 프로세서 (4.3 데이터패스 만들기) ※"컴퓨터 구조 및 설계 6판 MIPS EDITION" 책을 간단하게 정리한 내용의 글입니다.※4.3 데이터패스 만들기다음은 데이터패스 구성요소이다.Instruction memory프로그램의 명령어를 저장하고 있다가 주소가 주어지면 명령어를 읽어서 보내 주는 메모리 유닛Program counter현재 명령어의 주소가 주어지면 명령어를 읽어서 보내 주는 메모리 유닛AdderALU의 제어선을 항상 덧셈을 하도록 고정시키면 영구히 덧셈기가 된다.다음 명령어를 가리키기 위해 4를 증가시킬 때 사용한다.위는 명령어를 인출하고 프로그램 카운터를 증가시키는 데 사용하는 데이터패스의 일부분이다. 위는 레지스터 파일과 ALU이다.레지스터 파일은 범용 레지스터 32개가 들어있는 것으로, 접근할 레지스터 번호를 지정함으로.. 2024. 11. 12.
[컴퓨터구조] 4 프로세서 (4.1 서론, 4.2 논리 설계 관례) ※"컴퓨터 구조 및 설계 6판 MIPS EDITION" 책을 간단하게 정리한 내용의 글입니다.※4.1 서론1장에서 봤듯이 컴퓨터 성능은 '명령어 개수', '클럭 사이클 시간', '명령어당 클럿 사이클 수(CPI)'에 의해 결정된다. 여기서 '클럭 사이클 시간'과 'CPI'는 프로세서의 구현 방법에 따라 결정된다. 이 장에서는 MIPS 명령어 집합을 두 가지 다른 방법으로 구현하여 데이터패스와 제어 유닛을 만든다.모든 명령어의 공통 첫 두 단계프로그램 카운터(PC)를 프로그램이 저장되어 있는 메모리에 보내서 메모리로부터 명령어를 가져온다.읽을 레지스터를 선택하는 명령어 필드를 사용하여 하나 또는 2개의 레지스터를 읽는다.공통 두 단계 이후위의 두 단계 이후에 명령어 실행을 끝내기 위해 필요한 행동들은 명.. 2024. 11. 11.
[컴퓨터구조] 3 컴퓨터 연산 (3.5 부동 소수점 ~) ※"컴퓨터 구조 및 설계 6판 MIPS EDITION" 책을 간단하게 정리한 내용의 글입니다.※3.5 부동 소수점프로그래밍 언어는 부호있는 정수와 부호없는 정수뿐만 아니라 소수 부분을 갖는 수도 다룰 수 있어야 한다.과학적 표기법(scientific notation)숫자를 10 미만의 수와 10의 거듭 제곱의 곱 형태로 나타내는 것을 과학적 표기법이라고 한다.예를 들어 21,212,421를 2.1212421 * 107로 표기하는 것이다. 또는 0.0123 * 102도 과학적 표기법이다.정규화된 수(normalized number)과학적 표기법에서 맨 앞에 0이 나오지 않는 것을 정규화된 수라고 한다.예를 들어서 0.001234을 1.234 * 10-3으로 표기하는 것이다.정규화된 수를 이진수 형태로 표기.. 2024. 11. 5.
[컴퓨터구조] 3 컴퓨터 연산 3.1 ~ 3.4 ※"컴퓨터 구조 및 설계 6판 MIPS EDITION" 책을 간단하게 정리한 내용의 글입니다.※3.1 서론아래의 질문에 답할 수 있는 내용을 배울 예정이다.소수나 실수를 어떻게 표현하는지?컴퓨터로 표현할 수 있는 것보다 더 큰 수가 계산의 결과로 나오면 어떻게 되는지?하드웨어가 실제로 어떻게 곱셈, 나눗셈을 수행하는지?3.2 덧셈과 뺄셈컴퓨터는 덧셈을 할 때 사람이 하는 것처럼 가장 아랫 자리부터 더하고, 올림수는 그 위의 자리에 더한다. 뺄셈은 수의 부호를 바꿔서 더한다.덧셈 시에 오버플로가 발생할 수 있다. 서로 다른 부호의 수를 더할 때는 오버플로가 발생하지 않는다. 뺄셈 시에는 부호가 같을 경우에 오버플로가 발생하지 않는다.(덧셈과 뺄셈은 산술논리연상장치(arithmetic logic uni, A.. 2024. 10. 15.
[컴퓨터구조] 2 명령어: 컴퓨터 언어 2.11 ~ ※"컴퓨터 구조 및 설계 6판 MIPS EDITION" 책을 간단하게 정리한 내용의 글입니다.※2.11 병렬성과 명령어: 동기화태스크가 병렬로 동작할 때 주의할 점은 태스크들이 경쟁 상태에 놓일 수 있다는 점이다. 이를 위해 태스크 간에 동기화가 필요하다. 동기화란 공유 자원에 접근할 때 서로 간섭 없이 올바르게 작업이 이루어지도록 접근 순서를 조정하는 것이다.이를 위해 동기화 연산인 lock과 unlock을 통해 단 하나의 프로세서만 작업할 수 있는 영역을 만들어서 상호 배제(mutual exclusion)을 구현할 예정이다.동기화를 구현하기 위해서는 메모리 주소에서 데이터를 읽고 수정하는 작업을 원자적으로 처리할 수 있는 하드웨어 프리미티브가 필요하다. 중간에 인터럽트나 다른 스레드가 개입하지 않도록.. 2024. 10. 15.