본문 바로가기

Computer Architecture5

LEGv8 ISA (1) - 특징과 명령어 포맷 Introduction LEGv8 ISA는 Computer Organization And Design: ARM Edition에서 소개하는 ISA (Instruction Set Architecture)이다. 이 책이 Computer Organization And Design의 ARM 버전이지만 ARMv8의 전체 명령어 집합을 교육용으로 다루기에는 복잡하다. 그래서 책에서 LEGv8이라고 하는 ARMv8 ISA의 부분 집합을 정의한다. 부분 집합이라고는 하지만 일부 명령어는 ARMv8와 다르다. 일부 ARMv8 스펙은 불필요하게 프로세서를 복잡하게 만들기 때문에 LEGv8은 이런 명령어들을 좀더 단순화한다. 이 글에서는 LEGv8의 특징과 명령어 포맷에 대해 다룬다. 이 글의 모든 사진은 Computer O.. 2021. 12. 2.
Instruction Set Architecture vs Microarchitecture PPT 출처 Computer Architecture 컴퓨터의 목적은 사람이 원하는 것을 기계에게 전달하는 것이다. 아래의 이미지에서 Application은 우리가 사용하는 프로그램 (브라우저, 게임, ... 등등)이고, 전자가 움직이는 것처럼 물리적인 부분이다. 브라우저와 물리 현상 사이에는 엄청난 갭이 있기 때문에 여러 개의 계층을 거쳐야 컴퓨터가 우리가 원하는 것을 실행하도록 할 수 있다. 그래서 컴퓨터 아키텍처는 넓은 의미로 보면 Application과 Phyics 사이의 갭을 해결하는 것이라고 할 수 있다. 하지만 현실적으로는 Application과 Physics의 갭이 매우 크기 때문에 이 사이를 여러 개의 계층으로 나눌 수 있다. 프로그래밍 언어, 운영체제, 명령어 집합, 명령어 집합의 구현체.. 2021. 12. 1.
메모리 계층별 대략적인 성능 비교 컴퓨터에는 CPU 레지스터, CPU 캐시, RAM, SSD, HDD 등 다양한 장치에서 데이터를 읽고 쓸 수 있다. 일반적으로 이러한 계층구조는 피라미드 형태를 띄며, 피라미드에서 위로 갈수록 빠르고, 작고 비싸다. 아래로 갈수록 느리고, 크고, 싸다. 아래 그림은 컴퓨터에서 메모리가 어떻게 계층구조를 이루는지 그림으로 보여준다. 이 글에서는 실제 하드웨어에서 계층별로 어느 정도의 성능이 나오는지를 알아본다. 물론 하드웨어에 따라서 성능이 다르기 때문에 대략적인 성능만 알아본다. 다시 강조하지만 구체적인 수치는 다를 수 있다. 특히 예전 하드웨어랑 비교할수록 훨씬 느려보일 것이다. CPU Register 레지스터는 컴퓨터에서 가장 빠른 메모리로 CPU 내부에 존재한다. 레지스터에 데이터를 읽고 쓰는 것은.. 2021. 11. 7.
The Elements of Cache Programming Style 코드를 짜다가 캐시를 고려해서 짜야한다는 지적을 받아서 정리해본다. 원문: The Elements of Cache Programming Style (Chris B. Sears, USENIX 2000) Introduction 캐시 메모리는 당근과 채찍의 원리로 작동한다. 당근은 지역성의 원리(Principle of Locality)이고 채찍은 암달의 법칙이다. 지역성의 원리는 컴퓨터의 메모리 접근이 무작위적이지 않고 규칙이 존재한다는 가정에 근거한다. 이때 시간 지역성 (temporal locality)는 한 번 접근한 메모리는 다시 접근할 확률이 높음을 의미하고, 공간 지역성 (spatial locality)는 접근한 메모리의 주변 메모리에 접근할 확률이 높음을 의미한다. 그리고 암달의 법칙은 더 빠른 .. 2021. 10. 7.