Computer Science/Computer Architecture

📕Virtual memory Main memory를 보조 기억장치에 cache로 사용하는 기술이다. Programs는 main memory를 공유한다. 프로그램들은 자주 사용되는 코드와 데이터를 저장하는 개인 가상 메모리 주소 공간을 얻습니다. 가상 주소 공간은 프로그램의 주소 공간을 물리적 주소로 변환하여 다른 프로그램으로부터 보호됩니다. Page 가상 메모리 블록 page fault : 가상 메모리 miss를 의미한다. 메모리에는 없고, virtual address에만 있는 경우 Processor는 가상 주소를 생산한다. 가상 주소는 CPU와 OS에 의해 물리적 주소로 변환됩니다. 위의 과정을 address mapping 또는 address translation이라고 부릅니다. 📕Virtual Add..
📕Associative Caches Fully associative cache 모든 memory에 block이 캐시에 아무 곳이나 위치할 수 있다. block들은 아무 공간에 위치할 수 있기에, 다른 Cache방법보다 search가 어렵습니다. Set associative cache는 direct mapped와 fully associative cache의 중간 개념이라고 생각하면 쉽습니다. n-way set associative : 주어진 set안에 n개의 데이터가 존재합니다. 데이터들은 지정된 공간중 아무 곳이나 위치할 수 있습니다. set-associative cache에서 memory block (Block number) modulo (Number of sets in the cache) associ..
📕Cache SRAM의 종류중 하나면서, 작고 빠른 것이 특징입니다. Processor와 memory 사이에 위치하고 있으며, L1,L2,L3 Cache로 구성되어 있습니다. Processor는 Cache에서 가장 먼저 data를 찾습니다. 없으면 memory로 이동 Cache를 간단하게 구조화한 사진입니다. Processor가 cache에 X를 요청합니다. Cache에서 X가 있는지 없는지를 체크합니다. 있다면 Cache -> Processor로 X를 전달해주고 이때를 hit라고 합니다. 여기서 우리는 그 정보가 어디있는지도 알아야 합니다. 없다면 Cache는 Memory에서 X를 찾아서 Processor에게 전달해줍니다. Cache에 요청한 data가 없다면 그 때를 miss라고 합니다. 📕Direc..
✋목차 Principle of Locality Temporal locality Spatial locality Memory Hierarchy 📕Principle of Locality Temporal locality locality in time 한번 사용했던 것을 다시 사용 예를 들면 반복문 안에서 사용되는 instruction Spatial locality locality in space 한번 사용 했던 것 근처를 사용 예를 들면 순서대로 instruction에 접근하는 것이나, 배 열등이 있다. 코드를 예를 들어서 설명하면 이해가 쉬울 것이다. sum=0; for( i=0; i
📕RISC-V는 5단계의 pipeline으로 진행합니다.( IF, ID , EX , MEM , WB) 📕Pipeline Registers 파이프 라이닝을 수행하려면 이전 사이클에서 생성된 이전 정보에서 단계 사이의 레지스터가 필요함. 모든 명령은 각 시계 주기 동안 레지스터 간에 진행됩니다. 레지스터는 통과하는 라인에 해당하는 모든 데이터를 저장할 수 있을 만큼 충분히 넓어야 합니다. 예) IF/ID 레지스터는 64비트 너비여야 합니다(32비트 instruction + 32비트 PC address). 📕Load 📗IF (Instruction Fetch) PC의 주소를 사용하여 메모리에서 명령을 읽은 다음 IF/ID 파이프라인 레지스터에 배치함. PC의 값은 4씩 증가함. 📗ID IF/ID register..
📕single-cycle 이 요즘 사용되지 않는 이유 싱글 사이클 설계는 정확하게 작동하지만, 현대적인 설계에 사용되기에는 부적절하기 때문에 잘 사용되지 않는다. 프로세서에서 가장 긴 path가 clcok cycle을 결정한다. instruction 중에서도 load instruction은 5개의 unit을 사용한다. [instruction마다 사용하는 거쳐가는 unit이 다르다] instruction memory register file ALU data memory register file 📕Pipelineing 여러 개의 instruction을 실행단계에서 overlap 시켜서 동시에 실행하는 방법이다. 그림으로 이해하면 쉽다. 아래 그림은 Pipeline 기법을 사용하지 않는 세탁방법이다. A 작업..
📕Introduction 컴퓨터의 성능은 3가지 요소로 결정된다. Instruction count : ISA와 컴파일러 Clock Cycle time : CPU hardware에 의해 결정된다. Clock Cycles Per Instruction(CPI) : CPU Hardware에 의해 결정된다. 📕Basic RISC - V Implementation RISC - V 에는 두 가지 실행 버전이 있습니다. A simplified (sequntial) version pipelined version RISC - instruction set memory - reference instruction : load/store doubleword(LW, SW) The arithmetic - logical instruc..
📕Real Number Representation 프로그래밍 언어는 실수라고 부르는 fractions을 지원한다. 3.14159265(pi) 2.71828..(e) 등등등 명시적 표기법은 소수점 왼쪽의 한 자릿수가 있다. normalized number : 점 앞에 하나의 숫자가 와야 함. ex 1.0 * 10 ^ -9 -> Normalized, 10.0 * 10^-10 or 0.1 * 10^-8 -> Not normalized 이진수의 명시적 표시 1.0 * 2^-1 📕Floating Point Floating point는 숫자의 base에 따라 표현하는 숫자의 방식이 다르고, point의 위치도 달라지기에 floating point라고 부른다. 2진수의 형태 실수를 normalized form으로 표..
📕Addition 덧셈을 할 때 digits들은 같은 자리에 bit들끼리 더해주는데 만약 더해서 2가 된다면 그 자리를 0으로 만들고 다음 자리에 1을 carry 해준다. 덧셈에 기본 방향은 오른쪽에서 왼쪽으로 넘어간다. 예를 들어서 7+6을 할 때 00000000 00000000 00000000 00000111 (2) = 7 (10) + 00000000 00000000 00000000 00000110 (2) = 6 (10) = 00000000 00000000 00000000 00001101 (2) = 13 (10) 📕Subtraction 뺄셈은 덧셈을 사용해서 표현할 수도 있다. 더하고자 하는 수를 음수로 바꾼 뒤 더하면 간단하다. ex) 7 -6 = 7 + (-6) 이랑 같은 결과가 나온다. 따라서 ..
재한
'Computer Science/Computer Architecture' 카테고리의 글 목록