일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- function
- github
- for
- computer
- react
- DoM
- html
- php
- python
- DB
- data structure
- DS
- XML
- web
- Class
- Java
- while
- instruction
- system
- CSS
- Pipelining
- javascript
- DATAPATH
- control
- Algorithm
- Linux
- MIPS
- MacOS
- architecture
- mysql
- Today
- Total
목록computer (83)
YYYEJI
I/O(Input/output)란? 컴퓨터 및 주변장치에 대하여 데이터를 전송하는 프로그램, 운영 혹은 장치를 말하며, I/O device가 없다는 것은 자동차의 바퀴가 없는 것과 같다는 말이 있을 정도로 굉장히 중요한 역할을 합니다. I/O devices의 구분 Behavior - input, output, storage Partner - Human or Machine Data rate -Bytes/sec, transfers/sec 그렇다면 I/O device의 업무를 어떻게 전달할까요? bus를 통해 전달하게 됩니다. Bus란? CPU, memory, I/O controller 등을 연결해주는 길입니다. 아래 그림을 살펴보면 Memory I/O interconnect 부분이 BUS이고, 이 BUS를 ..
Virtual memory란? 실제로 존재하는 memory가 아닌 논리적으로 존재하는 memory입니다. Virtual memory는 memory의 성능보다는 protection 즉 정보를 보호하기 위해 존재한다고 할 수 있습니다. Terminology page - virtual memory block miss - page fault 그림을 보면서 살펴보겠습니다. Virtual memory에 address가 있으면 physical memory에서 data를 가져오고, virtual memory에 address가 없으면 hard disk에서 data를 가져와 CPU에 전달하게 됩니다. 마치 HD(Hard disk)의 cache($)처럼 사용하게 되는 것이죠. Program이 실행될 때 program은 vi..
cache에서 miss가 일어났을 때 어떤 값이 새로운 data로 변경되어야 되는지에 대한 이론입니다. ① Random 랜덤으로 값을 replace 합니다. ② FIFO 가장 먼저 들어온 data가 replace 됩니다. problem - 가장 먼저 들어왔지만 자주 사용되는 data일수도 있음. ③ LRU(Least Recently Used) 가장 최근에 사용되지 않은 data가 replace 됩니다. (자주 사용되는 이론입니다.) ④ LFU(Least Frequently Used) 가장 reference가 적은 data가 replace됩니다. problem - 늦게 들어와서 reference 횟수가 적은 것일수도 있음 ◡̈
Cache와 momery 사이에 데이터의 이동통로인 bus가 존재합니다. 1sec - 어떤 data를 찾을지 보내는 시간 17sec - data 찾는 시간 1sec - data를 fetch하는 시간 라고 가정을 하고, 각각의 bus/memory size에 따라 성능을 확인해 보겠습니다. One word wide memory Bus와 memory를 작게 만들면 굉장히 많은 시간이 걸리게 됩니다. 1 + 17*4 + 1*4 그럼 bus와 memory의 사이즈를 늘리면 어떻게 될까요? Wide memory 1 + 17 + 1 시간이 굉장히 줄은 것을 확인할 수 있습니다. 하지만 memory의 size를 늘려버리면 비용이 너무나도 크게 증가하기 때문에 큰 size의 memory는 사용하지 않습니다. 그렇게 나온..
Cache에 새로운 값을 쓸 때 메모리의 값은 언제 변경해야 하는지에 대한 이론입니다. Write through란? 새로운 data가 업데이트되는 즉시 memory에도 업데이트 시킵니다. 장점 다른 주소의 값을 업데이트 시키고 싶어서 주소 값을 바꿀 때 이미 memory의 값이 변해있기 때문에 cache에 바로 overriding해도 됩니다. 단점 memory access 시간이 오래 걸리는데 새로운 값이 update될 때마다 memory를 access하기 때문에 시간이 오래 걸립니다. Write back란? 새로운 data가 업데이트되면 바로 memory에 업데이트 시키는 것이 아니라, dirty bit을 1 bit 둬서 dirty bit에 맞춰 memory의 값을 업데이트 시킵니다. 장점 Cache의..
Hits과 Misses가 일어났을 때의 Cache를 먼저 살펴봅시다. Read hits이 일어났을 때는 유효한 data가 cache에 존재한다는 뜻이기에 계속 진행하면 됩니다. Read miss가 일어났을 때는 (For data cache) 1 - CPU를 stall 시킨다. 2 - Memory로부터 block를 가져온다. 3 - Cache로 data를 옮긴다. 4 - 재시작(Restart) 시킨다. Instruction cache와 data cache에서 miss가 일어났을 때의 진행되는 상황은 조금 다릅니다. Instruction을 fetch할 때 PC 값이 4가 같이 증가하기 때문에 instruction cache에서 miss가 일어나면 증가된 값을 빼줘야 됩니다. (나머지는 data cache과 ..
Set Associate Cache란? Lower lever(ex. HD, memory)에서 data를 가져(loading)올 때 data가 들어갈 (upper level의)주소가 정해져 있는 operation입니다. Direct mapped랑 달리 set에서는 여러 개의 block이 set의 개수만큼 들어갈 수 있으며, Direct mapped는 다른 유효한 data가 들어오기 위해 현재 있는 cache의 값을 미뤄버려야 하지만 set associate는 그럴 필요가 없다는 것이 장점입니다. Data가 들어갈 자리는 아래와 같은 공식으로 구할 수 있습니다. Location in the Cache = (Block address) modulo (Number of Sets in the Cache) Index..
Fully Associate란? Lower lever(ex. HD, memory)에서 data를 가져(loading)올 때 data 들어온 순서대로 upper level에 들어가는 operation입니다. Data가 Cache에 들어올 때 하나씩 찾는 것이 아니라 동시(parallel)에 찾기 때문에 성능이 좋습니다. Tag Data(00) Data(01) Data(10) Data(11) 0000(1) 0110(6) 0001(1) 0100(4) 1000(8) Data 1 0000(1) 0110(6) 0001(1) 0100(4) 1000(8) Data 1 6 0000(1) 0110(6) 0001(1) 0100(4) 1000(8) 0001(1)은 이미 존재하기 때문에 hit입니다. Data 1 6 0000(..