본문 바로가기

반응형

대학 수업

I/O Device와 I/O 인터페이스 - 임베디드 컴퓨터 구조 I/O device의 정의 작동: input, output, storage 상호작용: 사람 / 컴퓨터 데이터 속도: bytes/sec, transfers/sec I/O bus connection CPU와 I/O Devices는 Memory-I/O Interconnect로 연결되어 있다. 디바이스는 CPU에 interrupt를 걸어 요청을 처리한다. Interconnection Components 데이터 통신을 위해서는 CPU, memory, I/O controller를 서로 연결해야 한다 Bus: shared communication channel parallel set of wires for data and synchronization of data transfer bus clock이 존재한다 보통 C.. 더보기
Scratchpad Memory, Cache Locking - 임베디드 컴퓨터 구조 Scratchpad Memory 임베디드 시스템에서 메모리를 사용할 때 자주 쓰이는 간단한 테크닉 Main Memory에 빠르게 접근하기 위해 Main Memory에서 데이터를 복사해 가깝고, 작고, 빠른 Cache Memory에 옮겨놓고 사용한다. 그러나 어떤 데이터가 Cache에 존재하는지를 장담할 수 있을까? 물론 Locality가 굉장히 강한 데이터는 Cache에 오래도록 머무를 수 있지만, 기본적으로 100%를 장담할 수는 없는 일이다. 확률적으로 Ejection이 될 가능성이 있음. 이럴 경우 Additional Delay를 발생시키고 심할 경우에는 목표로 삼았던 Execute Deadline을 넘길 수 있음 만일 정말정말 자주 사용되는 데이터가 있다면 SRAM에 고정시켜놓고 사용하는 쪽이 효.. 더보기
Virtual Memory, TLB, Cache Interacton - 임베디드 컴퓨터 구조 Virtual Memory Physical Memory는 한정되어 있음 Main Memory를 절약하기 위해 CPU와 OS를 이용하여 Secondary (Disk) Storage에서 데이터를 불러오자 프로그램들은 Main Memory를 공유한다 각각의 프로그램은 독립된 Virtual Address Space를 가지는 것처럼 표현된다. 각각의 프로그램은 다른 프로그램의 메모리를 침범하지 못한다 CPU와 OS가 Virtual Address를 Physical Address로 변환하는 역할을 한다 VM "block" (최소 단위)는 page라고 불린다 VM translation "Miss"는 page fault라고 불린다 Virtual Address는 VPN(Virtual Page Number), Page Of.. 더보기
DRAM 구조와 Cache Performance 측정 - 임베디드 컴퓨터 구조 DRAM에 대한 자세한 강의는 대학원 강의 때.. 가지 않습니다 DRAM 구성 DRAM은 2D Array로 구성되어 있고, Address를 받으면 해당 row를 읽어낸다. 읽어낸 데이터는 DRAM의 Row Buffer로 저장되며 이는 캐시의 역할을 수행한다. Row 단위로 읽힌 데이터는 Row Buffer에서 필요한만큼 잘려 CPU로 이동한다. DDR, QDR 한 Clock Cycle은 두 개의 Edge(Rising Edge, Falling Edge)로 구성되며, 최초의 DRAM은 한 Clock Cycle에 한 번의 데이터를 전송했으나 최근의 DDR(Double Data Rate) DRAM은 Rising과 Falling Edge에 각각 데이터를 전송하고, QDR(Quad Data Rate) DRAM은 D.. 더보기
Write-Through vs. Write-Back Cache - 임베디드 컴퓨터 구조 캐시 별로, Write-Through Cache Cache에 데이터를 업데이트 하면 Main Memory(원본)과 값이 달라진다. 이때 이를 해결하기 위해 캐시 업데이트 시 메인 메모리를 같이 업데이트 하는 정책이다. 프로세서가 메인 메모리 업데이트를 기다린다면 매우 비효율적이다 e.g. base CPI = 1, 10% inst = store, write to mem takes 100 cycles CPI = 1 + 0.1 * 100 = 11 cycles 이를 방지하기 위해 Write Buffer 사용 Write Buffer에 Memory에 업데이트 되어야 할 Data를 저장 CPU는 다음 명령어 실행하러 가고 DMA로 업데이트 store -> cache hit -> Write Buffer full 시에만.. 더보기
Cache Architecture - 임베디드 컴퓨터 구조 교수님 너무 졸려요 손이 꽁꽁꽁 잠이 솔솔솔 The Principle of Locality 프로그램은 짧은 시간 안에 메모리의 일부 공간(서로 연관성이 있음)만을 접근한다. 이를 지역성이라고 한다. 지역성은 다시 2가지로 나뉜다. Temporal Locality: 한 메모리 공간이 reference 되었다면, 짧은 시간 안에 다시 reference 될 확률이 높다. (Loop나 재사용) Spatial Locality: 한 메모리 공간이 reference 되면, 이와 가까운 공간이 reference 된다 (명령어 코드, array 접근) 아하 그렇구나~ Locality의 이점 이용하기 메모리는 위와 같이 hierarchical 하게 구성된다. 일단 모든 정보를 디스크에 넣고, 최근에 access 한 애들은.. 더보기
Speculative Tomasulo Algorithm - 임베디드 컴퓨터 구조 Tomasulo's Algorithm 리뷰 Reservation Station을 사용하여 in-order issue 된 명령을 out-of-order로 실행하는 하드웨어 구조 Register가 Renaming 되는 효과가 있어 out-of-order 시 발생할 수 있는 WAR, WAW Hazard를 방지할 수 있다. Loop Unrolling 기법을 하드웨어를 통해 실시할 수 있다. (컴파일러의 부담이 줄어든다.) Cache Miss 시에도 딜레이가 생기는 동안 다른 작업을 실행하므로 도움이 된다. 예측 기반 Tomasulo's Algorithm (Speculative Tomasulo's Algorithm) Speculative Tomasulo's Algorithm은 Branch Prediction을 예.. 더보기
Tomasulo's Algorithm - 임베디드컴퓨터구조 Tomasulo 알고리즘은 대표적인 Dynamic Scheduling 기법이다. 다이나믹 스케줄링은 하드웨어가 CPU stall을 줄이기 위해 명령어 실행 순서를 재배열하는 행위를 말하며, 이때 데이터의 흐름은 변경되지 않는다. 즉, 일종의 리팩토링인 셈 다이나믹 스케줄링을 통해 얻을 수 있는 이점 1. 컴파일 시점에 의존성을 알 수 없는 경우에도 통제가 가능하다. 2. 캐시 미스 같은 예측 불가능한 딜레이가 발생하는 경우에도 다른 코드를 실행하며 패널티를 줄일 수 있다. 3. 한 파이프라인에서 효율적으로 동작하도록 작성된 코드가 다른 파이프라인에서도 유효하다. 4. 실행 시점에 코드가 재배열되므로 컴파일러의 부담을 단순화할 수 있다. 5. 다이나믹 스케줄링은 Hardware Speculation에 도움.. 더보기

반응형