본문 바로가기

Computer Architecture16

[RISC-V] 컴퓨터구조 - Addressing Mode & Instruction Format 사전 참고 1. [RISC-V] 컴퓨터구조 - Instructions 개요 https://microelectronics.tistory.com/38 2. [RISC-V] 컴퓨터구조 - Instruction to Machine Code https://microelectronics.tistory.com/39 3. [RISC-V] 컴퓨터구조 - Procedure call 과 스택포인터 https://microelectronics.tistory.com/402.9 Communicating with PeopleASCII 코드를 통해 1바이트 숫자로 문자를 표현할 수 있게 되었다. 따라서 당연히 바이트를 추출하는 명령어도 존재해야 한다.당연하게 byte load 시 오른쪽 기준으로 load 된다. 2.10 RISC-V.. 2024. 3. 12.
[RISC-V] 컴퓨터구조 - Procedure call과 스택포인터 사전 참고 1. [RISC-V] 컴퓨터구조 - Instructions 개요 https://microelectronics.tistory.com/38 2. [RISC-V] 컴퓨터구조 - Instruction to Machine Code https://microelectronics.tistory.com/39 2.8 Supporting Procedure in Computer Hardware procedure (절차)/ 함수 를 실행하기 위해서 프로그램은 반드시 아래 6가지 단계를 밟아야 한다. procedure 가 접근할 수 있는 곳에 파라미터(매개변수)를 둔다 procedure 을 제어,전달한다. procedure 에 필요한 storage resource 를 획득한다. 해당하는 task 를 수행한다. proc.. 2024. 3. 11.
[RISC-V] 컴퓨터구조 - Instruction to Machine Code 사전 참고 1. [RISC-V] 컴퓨터구조 - Instructions 개요 https://microelectronics.tistory.com/38 2.5 Representing Instructions in the Computer 이전 게시글에서 살펴본 명령어가 하드웨어적으로 인식이 되기위해서는 정해진 규칙에 맞게 이진수로 변환이 되어야 한다. 아래는 설명에 들어가기전 어셈블리어를 머신코드로 변환한 간단한 예시이다. 이 미리 정해놓은 규격, 레이아웃을 instruction format 이라고 한다. instruction format 에 맞게 명령어를 이진수로 변환시키면 그것이 바로 machine code 가 되는 것이다. RISC-V Fields R-type Instructions - Instruction.. 2024. 3. 11.
[RISC-V] 컴퓨터구조 - Instructions 개요 2.1 Introduction 컴퓨터에 명령을 하기위해서, 'instruction (명령어)' 라고 불리는 컴퓨터 언어를 사용해야 한다. 해당 명령어들의 집합을 instruction set 이라고 한다. Instruction Set Architecture (ISA) 란 instruction set 이 해당 하드웨어에 적용될 수 있도록 구조와 인터페이스를 설계한 것을 의미한다. 또한 하드웨어의 레지스터 구조, 명령어의 실행방식등도 정의한다. 따라서 컴파일러나 어셈블러가 이 ISA 를 토대로 설계되어 사람이 작성한 고수준언어(C, C++)가 하드웨어에 효율적으로 매핑될 수 있도록 한다. 정리하면, 컴파일러는 사람이 작성한 C나 C++ 같은 코드를 어셈블리어로 변환하는데, 이 어셈블리어가 아래의 표와 같은 I.. 2024. 3. 9.
입출력작업 - programmed i/o, interrupt driven i/o, DMA 초안 : 2023.04.18 입출력장치 (I/O Device) 입출력장치 (키보드, 마우스, 저장자치) 들은 각자 저마다의 컨트롤러를 통해 CPU 와 연결된다. (시스템 버스와 연결된다)물론 각 장치의 컨트롤러들은 장치에 특화된 기능을 수행하기도 하지만, 본 게시글에서는 CPU 와 입출력장치 간의 중개역할에 대해서만 언급한다. 위와 같은 관점에서 컨트롤러는 아래와 같이 3종류의 레지스터로 간략히 표현할 수 있다. 데이터 레지스터 : CPU 와 입출력장치 간에 주고받는 데이터가 담기는 레지스터. 데이터 버퍼링을 하며, 상대적으로 느린 I/O 장치와 CPU 의 전송률 차이를 완화한다. 상태 레지스터 : 입출력 장치가 입출력 작업을 할 준비가 되었는지, 완료되었는지, 오류가 없는지 등의 상태 정보를 저장한다... 2023. 4. 19.
캐시 메모리(Cache Memory)의 쓰기 동작 초안 : 2023.04.12 2023.04.10 - [Computer Architecture] - 캐시 메모리(Cache Memory)의 원리 2023.04.11 - [Computer Architecture] - 캐시 메모리(Cache Memory)의 구조 및 동작 과정 - 1 2023.04.12 - [Computer Architecture] - 캐시 메모리(Cache Memory)의 구조 및 동작 과정 - 2 지금까지는 내용은 모두 메모리를 read 할 때 캐시가 어떻게 동작하는지에 관한 것이었다. 프로세서는 메인 메모리에 값을 저장하려고 할 때, 캐시메모리에도 저장하고 메인 메모리에도 기록한다. 그런데 결과 값을 저장할 때마다 캐시와 메인 메모리 모두에 저장을 한다면, 메인 메모리의 늦은 access.. 2023. 4. 12.
캐시 메모리(Cache Memory)의 구조 및 동작 과정 - 2 초안 : 2023.04.10 2023.04.10 - [Computer Architecture] - 캐시 메모리(Cache Memory)의 원리 2023.04.11 - [Computer Architecture] - 캐시 메모리(Cache Memory)의 구조 및 동작 과정 - 1 이전 게시글에서 다룬 direct mapping 방식의 캐시 메모리를 생각해보면.. 메인 메모리의 어떤 데이터 블록은 캐시메모리의 지정된 슬롯으로 들어가야만 하고, 해당 슬롯에 이미 정보가 있다면 그 내용은 지워져야 한다. 캐시에 여유 공간이 있더라도 말이다. 이는 결과적으로 hit ratio 를 낮게 만드는 요인이 된다. Set Associative Mapping 이를 해결하기위해 direct mapping 캐시 메모리 두개를 .. 2023. 4. 12.
캐시 메모리(Cache Memory)의 구조 및 동작 과정 - 1 초안 : 2023.04.10 2023.04.10 - [Computer Architecture] - 캐시 메모리(Cache Memory)의 원리 캐시메모리에는 메인메모리의 일부 내용이 복사되어 저장된다. 프로세서가 어떤 주소에 접근하려고 하면, 먼저 그 주소에 해당하는 내용이 캐시에 있는지 확인하고 있다면 캐시메모리에서 바로 읽고, 없다면 메인메모리에서 읽고 캐시로 복사해온다. 이때 해당 주소 뿐만 아니라 인접 주소 내용도 함께 블록 크기로 복사한다. 즉 캐시메모리에 저장되는 정보는 두개이다. 1. 메인 메모리에서 복사한 데이터 블록 2. 이 데이터 블록이 메인 메모리의 몇번지에 있던 내용인지 나타내는 Tag 정보 아래 그림은 4x16 형식의 캐시 메모리 구조 예시이다. 4개의 데이터 블록이 있으며, 각 .. 2023. 4. 11.
캐시 메모리(Cache Memory)의 원리 초안 : 2023.04.10 CPU 는 프로그램을 실행하기 위해 메모리에서 명령어 및 데이터를 불러온다. 문제는 이 과정이 칩 외부의 시스템버스를 통해서 이뤄지므로 딜레이가 상당하다는 것이다. 다음에 쓰일 명령어나 변수를 예측에서 코어 내부의 SRAM 기반 메모리에 박아둔다면 이와 같은 딜레이를 드라마틱하게 줄일 수 있을 것이다. 이를 위한 메모리가 바로 캐시메모리(Cache Memory) 이다. CPU 내부에는 여러개의 캐시메모리가 존재하는데, 여기서도 코어와 가까운 순서대로 계층 (hierarchy)을 구성한다. 코어와 가장 가까운 캐시메모리를 L1 (level 1) 캐시, 그 다음을 L2 캐시, 그 다음을 L3 캐시라고 한다. 보통 L1, L2 캐시는 각 코어 내부에 있고 L3 은 코어 외부에 위치.. 2023. 4. 10.