안녕하세요 Hani입니다. 병렬성을 위한 파이프라인에 이어서 이번 시간에는 파이프라인 해저드에 대하여 알아보겠습니다. 파이프라인은 '모든 명령이 정해진대로 수행된다'는 것을 가정합니다. 반대로 말하면 다음 명령이 다음 사이클에 수행될 수 없는 상황을 마주하게 되면 파이프라인이 깨집니다. 파이프라인을 망가트릴 수 있는 몇 가지 위험들을 알아보겠습니다. Structural hazards 하드웨어가 동일한 클럭 사이클에서 실행하고자 하는 명령의 조합을 지원하지 않는 경우가 있습니다. 쉽게 말하자면, 한 클럭에서 두 가지 이상의 명령이 같은 메모리 주소의 자원을 필요로 하는 경우입니다. A, B, C 명령이 있고 A, B 명령이 같은 자원을 필요로 한다면 C와는 무관하지만 A와 B간 해저드가 생깁니다. Data..
프로그램이 실행되기 위해선, 심지어 변수 하나를 건드릴 때에도 메모리의 주소에 접근하여야 합니다. 컴퓨터 구조의 목적은 컴퓨터 시스템의 성능을 향상시키는 것인데, 메모리 접근 속도가 발목을 잡습니다. 주로 접근하는 메모리인 DRAM의 속도는 우리가 원하는 만큼 빠르지 않기 때문입니다. 때문에 컴퓨터 구조의 목적을 달성하기 위해 더 성능이 좋은 메모리를 탐구할 필요가 있습니다. Memory Hierarchy 메모리는 크게 SRAM과 DRAM으로 나눌 수 있습니다. 메모리의 속도, 즉, 메모리 주소에 접근하여 값을 꺼내오는 시간은 SRAM이 DRAM보다 훨씬 빠릅니다 추가로 비교하자면 SSD 같은 기억장치는 DRAM보다 느린 수준입니다. 당연히 메모리는 빠를수록 용량 대비 가격이 비싸며, 이상적인 메모리는 ..
안녕하세요 Hani입니다. 이번 포스팅에서는 파이프라인에 대하여 알아보겠습니다. Single Cycle Datapath / Multi Cycle Datapath 컴퓨터가 명령어를 처리하기 위한 단일 사이클을 돌린다면 한 명령이 끝날 때까지 다른 명령이 수행되지 못합니다. 예를 들어, 프로그램 카운터에서 Fetch를 한 후, Decode부터 사이클이 끝날 때까지 프로그램 카운터가 쉬고 있으면 프로세서를 완전히 사용하고 있다고 볼 수 없겠죠. 아래는 각각 Single Cycle Datapath와 Multi Cycle Datapath에 의한 CPU의 작업 처리 성능을 보여줍니다. 이렇게 한 명령어 사이클을 여러 단계로 나누고 각 단계에서 동시에 다른 명령어를 처리하는 작업 방식을 파이프라이닝이라고 합니다. 파..
지난 포스팅에서는 MIPS의 하드웨어 연산에 대하여 알아보았습니다. 2020/09/23 - [컴퓨터구조] - [컴퓨터구조] MIPS 하드웨어 연산 MIPS의 명령은 32bit 로 고정이 돼있지만 명령의 종류에 따라서 명령어의 형식이 약간씩 달라지게 됩니다. 이번 포스팅의 주제는 명령어의 형식이 어떻게 구성되는가입니다. R 형식은 3개의 피연산자를 요구하는 명령일 때 사용되며, 피연산자가 모두 레지스터입니다. op : 실행할 연산의 종류 rs : 피연산자 레지스터 rt : 피연산자 레지스터 rd : rs와 rt를 연산하여 얻은 결과를 저장할 레지스터 shamt : 쉬프트 명령에서 사용되며 얼마나 이동할 것인지 나타냅니다. (default = 0) funct : 실행할 연산의 종류 논리 연산 and or n..
지난 포스팅에서는 ISA(Instruction Set Architecture) 가 무엇인지 알게 되었습니다. 그리고 하드웨어와 소프트웨어의 상호연결을 위한 ISA 의 중요성에 대하여 강조를 했습니다. 2020/09/22 - [컴퓨터구조] - [컴퓨터구조] ISA(Instruction Set Architecture) 이번 포스팅에선 ISA 중 하나인 MIPS(Microprocessor without Interlocked Pipeline Stages) 에 대하여 알아보겠습니다. CPU 는 가능하면 메인메모리보다 CPU 내부에 있는 메모리인 레지스터로부터 데이터를 읽어오는 것이 낫습니다. RAM 은 DRAM 이고 레지스터는 SRAM 이기 때문에 레지스터의 속도가 더 빠르기 때문입니다. 즉, 레지스터를 이용한 ..
시스템 소프트웨어인 OS 와 어플리케이션 소프트웨어의 경계에는 Shell 이라는 인터페이스가 존재합니다. 2020/09/15 - [운영체제] - [운영체제] 운영체제와 하드웨어의 관계 이와 비슷하게 하드웨어와 시스템 소프트웨어의 경계에도 인터페이스가 존재합니다. 고수준 언어인 어플리케이션 소프트웨어가 시스템 소프트웨어인 어셈블러와 컴파일러를 거쳐 로우 레벨의 언어로 번역되어 하드웨어와 마주하게 되는 영역, 이러한 인터페이스를 ISA(Instruction Set Architecture) 라고 합니다. ISA 는 하드웨어와 소프트웨어가 서로 어떻게 소통할지 정해놓는 규약이라고 할 수 있습니다. 하드웨어가 소프트웨어와 상호작용할 수 있는 명령어 집합으로 구성되어 있어 ISA (명령어 집합 구조) 라고 불립니다..
- Total
- Today
- Yesterday
- WWDC19
- observeOn
- 네트워크 플로우
- 포드 풀커슨 알고리즘
- 강한 순환 참조
- CompositionalLayout
- 코딩대회
- WWDC16
- IOS
- mach-o
- MeTal
- 벨만포드 알고리즘
- State Restoration
- WWDC21
- 다익스트라 시간복잡도
- WWDC17
- 최단경로문제
- HIG
- CPU와 Memory
- 최단경로 문제
- 컴퓨터 추상화
- 벨만포드 시간복잡도
- 부스트캠프 6기
- 에드몬드 카프 알고리즘
- 최단경로 알고리즘
- test coverage
- 네트워크 유량
- rxswift
- 최대 매칭
- Testable
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |