반응형

Computer Science/Computer Architecture 19

[컴퓨터구조] Lecture 19: Memory Hierarchy - Part3

경희대학교 김정욱 교수님의 컴퓨터구조 강의를 기반으로 정리한 글입니다.Common Framework for Memory HierarchyTLB는 virtual address만 → 실제 data를 포함한 L1보다 용량이 작음용량이 클수록 miss rate 감소Block Placement of Memory HierarchyWhere Can a Block Be Placed?direct mapped, fully associative는 set associative의 일종자유도 증가 → miss rate 감소cache size 증가 → miss rate 감소자유도 증가 → block 교체 확률 감소 → miss rate 감소but, 자유도가 너무 크면 → saturation됨cache size 증가 → 자유도 영향..

[컴퓨터구조] Lecture 18: Memory Hierarchy - Part2

경희대학교 김정욱 교수님의 컴퓨터구조 강의를 기반으로 정리한 글입니다.Misses in Direct-Mapped CacheExample - 0, 8, 0, 6, 8Associative Cache MemoryFully associative cachemain memory의 block은 cache의 어느 location이든 위치할 수 있음 → cache에 대한 전수탐색 필요cache의 모든 위치에 대해 comparator가 병렬적으로 연산 수행 → hardware cost 매우 증가Set associative cache고정식 숫자의 장소에 main memory block 위치시키는 방법N-way set-associative cacheN개의 block을 하나의 set으로 묶는 방법set 개수 = 캐시의 전체 블..

[컴퓨터구조] Lecture 17: Memory Hierarchy - Part1

경희대학교 김정욱 교수님의 컴퓨터구조 강의를 기반으로 정리한 글입니다.ROM vs. RAMROM(Read Only Memory)읽기만 가능Non-volatile memory(비휘발성 메모리): 전원이 꺼져도 영구적으로 파일을 저장Mask ROM: 반도체 생산 공정인 마스킹 단계에서 고정된 데이터 회로 패턴으로 생산하는 방식RAM(Random Access Memory)일시적 메모리Read-write memory: 읽고 쓰기 가능Volatile memory(휘발성 메모리): 컴퓨터가 동작 중일 때 일시적으로 파일을 저장ex. DRAM, SRAMSRAM vs. DRAMSRAM(Static Random Access Memory)cache memory(캐시 메모리)한 비트 표현을 위해 6개 이상의 트랜지스터 필요..

[컴퓨터구조] Lecture 15: The Processor - Part4

경희대학교 김정욱 교수님의 컴퓨터구조 강의를 기반으로 정리한 글입니다.Pipeline HazardsAdvantages of the Pipelining: Speed up → Improved performanceStructure hazardsData hazardsControl hazardsStructure Hazards자원 충돌로 인해 발생하드웨어가 같은 clock cycle 내에서 우리가 원하는 인스트럭션의 조합을 실행할 수 없는 문제CC4에서 인스트럭션과 데이터가 같은 메모리에 저장된 경우 → fetch, memory 단계가 같은 clock cycle에 겹치면, 같은 메모리에 동시에 접근하여 충돌 발생Solution1: Stall(한 사이클 중지)→ 하지만 2번 인스트럭션과 다시 겹침 → 3번씩 쉬어야 ..

[컴퓨터구조] Lecture 14: The Processor - Part3

경희대학교 김정욱 교수님의 컴퓨터구조 강의를 기반으로 정리한 글입니다.Overview of PipeliningPipelining: 여러 인스트럭션들이 중첩해서 실행시키는 기법Pipeline Instruction-execution (5 stages)메모리에서 인스트럭션을 Fetch인스트럭션을 decoding하는 동안 레지스터를 Read작업을 수행하거나 주소 계산Data memory의 operand에 접근레지스터에 결과를 WritePipelining Speed-Up DiscussionSingle cycle vs. Pipelined performacePipelining speed-upstage들이 완벽하게 밸런스를 이루고 있으면하지만 이런 경우는 없음인스트럭션 3개의 실행 시간 비교Nonpipelined: 2..

[컴퓨터구조] Lecture 13: The Processor - Part2

경희대학교 김정욱 교수님의 컴퓨터구조 강의를 기반으로 정리한 글입니다.Creating a Single DatapathSingle Datapath: 인스트럭션을 순서대로 처리R-formatI-formatR-format과 달리 [20, 16]이 write reg로 쓰여야 해서 MUX를 추가함Addressing in Branches and Jumpsbeq $s0, $s1, branch_locationJ-formatA Simple Implementation SchemeALU Control(4-bits)ALUOp(2-bits) + “funct”(6-bits)ALU control은 인스트럭션의 타입에 의해 결정됨lw, sw → ALUOp: 00 → ALU control Input: 0010 → AddBranch e..

[컴퓨터구조] Lecture 12: The Processor - Part1

경희대학교 김정욱 교수님의 컴퓨터구조 강의를 기반으로 정리한 글입니다.Processor컴퓨터를 실행하는 연산을 수행하는 integrated electronic circuitDatapath of the ProcessorFetch stage, Decode stage, Execute stage로 나뉨 → stage들은 반복됨Data memory: lw, sw를 통해 데이터를 꺼내오고 저장하는 메모리Instruction memory: 인스터럭션 값이 저장되어 있는 메모리Fetch stageFetch: 꺼내다현재 PC가 가리키는 메모리 주소에서 인스트럭션을 꺼내오는 단계Fetch가 끝나면 PC는 다음 인스트럭션을 가리킴(PC + 4)Decode stage레지스터에 있는 인코딩된 인스트럭션은 디코더에 의해 해석됨E..

[컴퓨터구조] Lecture 10: Arithmetic for Computers - Part2

경희대학교 김정욱 교수님의 컴퓨터구조 강의를 기반으로 정리한 글입니다.Floating Point위 코드는 멈추지 않고 무한히 반복Floating Point: 소수점 위치를 고정하지 않고 유효 숫자를 나타내는 가수 부분, 소수점 위치를 풀이하는 지수 부분으로 나누어 표현Scientific notation소수점 앞의 수는 한 자리 수소수점 앞 한 자리 수는 1~9 사이 값이어야 함뒤에 곱해지는 형태는 지수 형태Normalized scientific notation (Binary)소수점 앞의 수는 한 자리 수소수점 앞 한 자리 수는 1뒤에 곱해지는 형태는 지수 형태Three advantages소수점의 위치를 변경하는 것이 가능모든 소수점 표현 알고리즘이 같은 형태를 공유하고 있기 때문에 지속성(consiste..

[컴퓨터구조] Lecture 09: Arithmetic for Computers - Part1

경희대학교 김정욱 교수님의 컴퓨터구조 강의를 기반으로 정리한 글입니다.Arithmetic OperationStatus: Overflow가 일어났는지 아닌지 체크Integer Result: value ($t0 에 저장될 값)OverflowAddition두 부호가 같으면 overflow가 일어날 수 있음두 부호가 다르면 overflow가 일어날 수 없음Subtraction두 부호가 같으면 overflow가 일어날 수 없음두 부호가 다르면 overflow가 일어날 수 있음Overflow DetectionMIPS C compiler는 overflow exceptions 제공Signed instructions: add, addi, subtract는 overflow exception을 발생시킬 수 있음Unsigne..

[컴퓨터구조] Lecture 08: Instructions - Language of the Computer - Part5

경희대학교 김정욱 교수님의 컴퓨터구조 강의를 기반으로 정리한 글입니다.Translating and Staring a ProgramCompilerC program → Assembly language program70, 80년대 많은 운영체제와 어셈블러가 어센블리 언어로 작성됨 → 메모리 용량이 적고, 컴파일러가 비효율적이었기 때문high-level language 프로그램은 어셈블리어보다 매우 적은 코드로 작성 가능AssemblerAssembly Language Code → Machine Code(Object file)Object file: Combination of machine language 명령어, 데이터, 명령어를 메모리에 적절하게 위치시킬 정보Machine code: CPU에서 바로 실행될 수 ..

반응형