Quality control (2)/Digital System Design

Processor / Latency

빈그레 2023. 3. 30. 00:15

 

 

 

 


Latency

 

 

 

 

 

 

 

 

Latency

 

: Processor가 명령어를 실행하기 위해 필요한 시간을 의미한다.

( 즉, 명령어를 받고 해당 명령어를 실행하기까지의 걸리는 시간을 의미한다. )

 

 

 

 

 

Latency 최적화

 

- Increase Processor clock speed 

: Processor가 명령어를 빠르게 실행할 수 있도록 하여, 작업 완료 시간을 줄일 수 있다.

 


[ Ways to increase the processor clock speed ]



- Overclocking(오버클럭)
 : 제조업체의 규격을 초과하여 Processor의 clock speed를 높이는 방법이다.
   오버클럭은 processor를 손상시키거나, 안정성 문제를 일으킬 수 있다.


- Upgrading the processor(프로세서 업그레이드)
 : 더 높은 clock speed를 가진 processor로 교체하는 것


- Improving the cooling system(냉각 시스템 개선)
 : processor는 고속으로 작동할 때 많은 열을 발생시킨다. 냉각 시스템을 개선하여 열을 효율적으로 배출하여,
   더 높은 clock spped로 작동시킨다. 


- Adjusting power settings( 전력 조정 설정)
  : 일부 processor에서는 clock speed를 높이기 위해 공급되는 전압을 조정할 수 있는 전력 설정이 있다.


- Upgrading the motherboard( 메인보드 업그레이드 )
 : 메인보드는 컴퓨터의 모든 구성 요소를 연결하는 주요 회로 기판이다. 이를 업그레이드 함으로써 더 높은
   clock speed 를 지원할 수 있다.


 

 

- Utilize cache memory

: 캐시 메모리는 자주 사용되는 데이터를 빠르게 액세스할 수 있다. (RAM에서 데이터 fetch하는 시간 줄일 수 있음)

 


[ ways to utilize cache memory  ]


- Optimizing cache size (캐시 크기 최적화)
: cache size가 크면 더 많은 데이터를 processor에 가까이 저장하여 latency를 줄일 수 있다.
그러나, cache size를 늘리는 것은 비용이 들기 때문에, 성능과 비용 사이 최적의 균형을 찾는 것이 중요하다.


- Accessing cache memory efficiently ( 캐시 메모리 효율적 액세스 )
: cache memory에 효율적으로 액세스 해야한다. 이는 cache miss를 줄이는 것을 의미한다.
 cache miss는 processor가 cache에 없는 데이터를 필요로 할 때 발생한다. 
 (cache 지역성을 활용하여 코드를 최적화함으로써, 이를 줄일 수 있다. )

 +++ cache 지역성 조사하기


- Using cache-conscious data structures (캐시 지원 데이터 구조 사용 )
:  배열이나 행렬과 같은 데이터 구조는 캐시 지역성이 좋다. 이러한 캐시 지원 데이터 구조를 사용하여 캐스 적중률을 향상시키고 latency를 줄인다.


- Minimizing memory accesses (메모리 액세스 최소화)
: 각 메모리 액세스는 일정한 지연 시간을 발생시키므로, 이를 최소화하여 latency를 줄일 수 있다.
 불필요한 데이터 전송을 줄이고, 이미 cache에 있는 데이터를 재사용하며, 곧 필요로 할 것으로 예상되는 데이터를 사전에 가져옴으로써 latency를 줄일 수 있다.


 

 

- Optimize memory access patterns

: 효율적인 방법으로 data에 접근함으로써, processor가 ram으로부터 데이터를 가져오는 시간을 줄일 수 있다.

 

- Spatial locality
- Temporal locality
- Alignment
- Memory allocation
- Prefetching
- Access pattern optimization

 

 

- Reduce instruction complexity 

:  복잡한 명령어는 실행하는데에 더 많은 시간이 걸리므로, 명령어 코드를 단순화하여 latency를 줄인다.

 

 

- Utilize parallelism

: 작업을 부분적으로 분할하고, 병렬적으로 실행함으로써 작업을 더욱 빨리 완료하여 latency를 줄인다.

 

 

- Upgrade hardware

: 오래되거나 느린 시스템을 사용하는 경우, processor,RAM 또는 storgate(저장소)와 같은 하드웨어를 업그레이드하여 latency를 줄일 수 있다.