본문 바로가기

컴퓨터구조5

[컴퓨터구조] 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.
[컴퓨터구조] 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.
[컴퓨터구조] 2 명령어: 컴퓨터 언어 2.6~ ※"컴퓨터 구조 및 설계 6판 MIPS EDITION" 책을 간단하게 정리한 내용의 글입니다.※2.6 논리 연산 명령어지금까지 워드 단위로 처리하는 명령어를 보았다. 하지만 워드 내 일부 비트들 뿐만 아니라 개개 비트에 대한 연산이 필요한 경우도 있다. 비트를 워드로 묶거나(packing), 워드를 비트 단위로 나누는(unpacking) 작업을 하는 명령어가 명령어 집합(instruction set)에 추가되었다. 이런 명령어를 논리 연산 명령어라고 한다.[ Logical operations ][ C operators ][ MIPS instructions ]Shift leftsllShift right>>srlBit-by-bit AND&and, andiBit-by-bit OR|or, oriBit-by-bi.. 2024. 10. 8.