Cortex-M7 Component Block

(6) LSU(Load Store Unit)

LSU는 Load, Store 성능을 높이기 위한 Unit이다. 

ARM 문서에 소개된 특징은 다음과 같다.

 

1) Dual 32-bit load channels to TCM, data cache, and AXI master (AXIM) interface for 64-bit load bandwidth and dual 32-bit load capability.

2) Single 32-bit load channel to the AHB interface.

3) Single 64-bit store channel.

4) Store buffering to increase store throughput and minimize RAM contention with data and instruction reads.

 

1),2),3) 특징은 단순히 읽고 이러한 특징이 있구나~ 정도로 확인할 수가 있다.

4번 특징에 나오는 RAM contention을 줄이기 위한 Store buffering이 존재한다는 부분은 단순히 읽어서는 이해가 되지 않는데 정보가 잘 나오지 않는다 ㅠ 이부분은 추후 알게되면 수정하도록 하겠다! 

 

 

(7) TCU(Tightly Coupled Unit)

TCU는 TCM이라는 저장장치를 위한 Interface를 제공하는 Unit이다.

그렇다면 TCM이라는 놈이 무엇인지를 알아야한다. 

TCM은 Tightly Coupled Memory로 Core에 바짝 붙어있는 Memory(SRAM)정도로 설명할 수가 있다.

바짝 붙어있는데다가 SRAM이라니! 빠른 접근을 위한 저장장치임은 분명하지만 TCM의 존재 이유에 대해 의문점이 들었다.

DRAM과 같은 메인 메모리는 접근 속도가 느리다는 것은 누구나 아는 내용이고 이를 보완코자 Cache 등의 여러 대안들이 마련되어있는데 굳이 TCM이라는 저장공간을 또 따로 둔 이유는 뭘까?

 

해당 의문점에 대해서는 구글링을 통해 어느정도 해답을 얻었다.

메모리 접근 속도를 위해 Cache가 존재하지만 Cache Memory에는 Access 시간의 '불확실성'이 존재한다. 

Access 시간의 불확실성에 대해서 설명하자면 다음과 같다.

Cache 메모리는 메인 메모리 공간의 내용들 중 자주 접근하는 메모리 내용들의 '일부'를 복사해놓은 공간이다.

따라서 접근하고자 하는 메모리의 내용이 항상 Cache Memory에 존재한다고 확신할 수는 없을 것이다.

접근하고자 하는 메모리 주소의 내용이 Cache Memory에 있을 때 Cache hit, 없을 때 Cache miss가 발생하고 hit했느냐, miss했느냐에 따라서 메모리 Access 속도는 달라질 수가 있다.

이것이 바로 Access 시간의 '불확실성' 이다.

 

따라서  Access 시간의 불확실성 없이 빠른 접근이 가능한 TCM이라는 메모리를 두는 것이다.

이러한 TCM은 Vector Table, Interrupt Service Routines과 같이 자주 실행되고 접근할 중요한 Data, Instruction을 담고있고 Bus를 통하지 않고 Processor와 직접적으로 연결되어 Code의 Latency, Arbitration을 피할 수가 있다.

 

 

(8) STB

앞서 LSU 특징에 나타난 Store Buffering의 주인공 Store Buffer인데 추후 공부하여 수정해보도록 하겠다.

 

 

(9) MIU(MBIST Interface Unit)

MBIST를 위한 Interface를 제공하는 Unit이다.

추가적으로 MBIST가 무엇인지에 대해 공부해보았다.

 

- MBIST

MBIST라는 것은 Memory Built-In Self-Test로 Memory를 테스트하기 위한 Test Logic을 Chip 내부에 박아둔 것이다.

다른분의 포스트를 통해 확인한 장점은 다음과 같다.

 

1. Chip 내부에 있다보니 실제 동작 속도와 같은 속도의 Clock으로 Test 할 수 있다.

2. 외부 장치를 이용한 Test보다 비용이 저렴하고 Test 시간을 줄일 수 있다.

 

MBIST Logic

추가적으로 MBIST의 동작에 대해서도 살펴보면

MBIST를 제어하는 Test Controller에 의해서 Test를 위한 Pattern(Address, Data 등)이 생성되고 이를 이용해 Test를 진행한다.

이렇게 나온 Output을 결함이 없을 경우의 Output과 Comparator를 통해 비교하여 GOOD/FAULT를 판혈하게 된다. 

 

 

 

(10) BIU(Bus Interface Unit)

BIU는 High-Performance L2 memory system을 제공할 수 있는 AMBA 4 AXI interface를 제공한다.

 

 

 

이번 포스트는 여기까지이다.

참고로 Debug쪽은 아직 읽어도 잘 이해가 되지 않아 일단은 살펴보지 않기로 했다. ㅠㅠ

따라서 Component에 대한 소개는 이번 포스트를 마지막으로 마치고 Cortex와 관련된 다음 포스트로 찾아오도록 하겠다.

 

 

출처 : ARM Cortex-M7 Processor Technical Reference Manual 문서, ARM

          https://asjoon.tistory.com/14

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기