순차적실행cpu
비순차적실행cpu
캐시
시간지역성 (Temporal Locality) : 최근에 사용한 데이터는 향후 다시 사용할 확률이 높음.
공간지역성 (Spatial Locality) : 현재 사용한 데이터의 주변 메모리 공간에 위치한 데이터는 향후 사용할 확률이 높음.
```python
# 옆에 있는 값과 비교해 더 작은 값을 앞으로 보내는 방식의 정렬
def bubble_sort(arr):
for i in range(n):
for j in range(len(arr)-i-1):
if(arr[j] > arr[j+1]):
[arr[j], arr[j+1]] = [arr[j+1], arr[j])
```
→ 데이터 지역성 부합 확률 : 최소 60% 이상, 흔히 90% 정도로 언급.
캐시 내부에서도 L1, L2, L3의 계층 구조를 가짐
캐시는 메인 메모리의 정보를 block 단위로 가져옴.
CPU는 우선 캐시 내부에 사용하고자 있는 데이터가 있는지 확인함.
- cache hit: 사용하고자 하는 데이터를 발견한 경우
- cache miss: 사용하고자 하는 데이터를 발견하지 못한 경우
→ 메인메모리 탐색 해 해당 데이터를 다시 cache에 load
- 만약, 이 때 캐시 공간이 다 찼다면, 기존에 정해진 정책(LRU, FIFO, LIFO, MRU 등)에 의해 빈 공간 만듦.
→ cache에 load한 데이터를 CPU에서 사용
https://sweet-snapper-a98.notion.site/43545f19395d4836b70764843c85e93c