KR102105644B1 - Mlc stt-mram에 영상을 저장하는 메모리 제어 장치 및 방법 - Google Patents

Mlc stt-mram에 영상을 저장하는 메모리 제어 장치 및 방법 Download PDF

Info

Publication number
KR102105644B1
KR102105644B1 KR1020180043964A KR20180043964A KR102105644B1 KR 102105644 B1 KR102105644 B1 KR 102105644B1 KR 1020180043964 A KR1020180043964 A KR 1020180043964A KR 20180043964 A KR20180043964 A KR 20180043964A KR 102105644 B1 KR102105644 B1 KR 102105644B1
Authority
KR
South Korea
Prior art keywords
block
image
mlc
read
mram
Prior art date
Application number
KR1020180043964A
Other languages
English (en)
Other versions
KR20190120596A (ko
Inventor
장우영
Original Assignee
단국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 단국대학교 산학협력단 filed Critical 단국대학교 산학협력단
Priority to KR1020180043964A priority Critical patent/KR102105644B1/ko
Publication of KR20190120596A publication Critical patent/KR20190120596A/ko
Application granted granted Critical
Publication of KR102105644B1 publication Critical patent/KR102105644B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5607Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using magnetic storage elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/161Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect details concerning the memory cell structure, e.g. the layers of the ferromagnetic memory cell
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/907Television signal recording using static stores, e.g. storage tubes or semiconductor memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Mram Or Spin Memory Techniques (AREA)

Abstract

본 발명은 MLC STT-MRAM을 이용한 영상 저장에 있어서, MLC-인식 영상 프레임 버퍼 구성, 블록-인식 픽셀 대 메모리 매핑 및 예측 인식 영상 대 버퍼 할당 기술이 적용된 메모리 제어에 관한 기술로서, MLC STT-MRAM에서 MTJ의 하드도메인 또는 소프트도메인으로만 영상 프레임 버퍼를 구성하는 것을 특징으로 한다.

Description

MLC STT-MRAM에 영상을 저장하는 메모리 제어 장치 및 방법{Apparatus for Storing Images in MLC STT-MRAM and Method Thereof}
본 발명은 영상을 MLC STT-MRAM에 저장하는 메모리 서브시스템에 관한 것으로서, 보다 상세하게는 MLC STT-MRAM을 이용한 영상 저장에 있어서, MLC-인식 영상 프레임 버퍼 구성, 블록-인식 픽셀 대 메모리 매핑 및 예측 인식 영상 대 버퍼 할당 기술이 적용된 메모리 제어에 관한 기술이다.
고품질 서비스에 대한 수요가 급증함에 따라, 첨단 프로세싱 장치에 대응하는 고성능 및 저전력 대용량 메모리를 설계하는 것은 매우 어려워지고 있다. 또한, 컴퓨터 시스템의 개발에 중요한 역할을 한 SRAM(Static Random Access Memory) 및 DRAM(Dynamic Random Access Memory)은 나노미터 영역에서의 누출 및 신뢰성 문제로 인해 스케일링 한계에 도달하고 있다. 따라서, PRAM(phase-change random access memory), ReRAM(resistive random access memory) 및 STT-MRAM(spin-transfer torque magnetic transfer random-access memory)과 같은 다양한 비휘발성 메모리가 개발되고 있다.
STT-MRAM은 SRAM 및 DRAM에 비해 저장 용량 및 누설 전류에 대해 매력적인 결과를 제공한다. 또한, STT-MRAM은 PCM 및 ReRAM보다 더 긴 쓰기 내구성을 가진다. 그러나 STT-MRAM은 다른 비 휘발성 메모리보다 저장 밀도가 낮다. 최근, STT-MRAM에 멀티 레벨 셀(MLC) 기술이 도입되었다. 각 MLC는 2bit 데이터를 저장하기 때문에 STT-MRAM의 저장 밀도를 크게 높일 수 있다. 따라서 MLC STT-MRAM은 온칩 대용량 캐시를 구성하는 가장 유망한 SRAM의 대안 및 에너지 효율적 메인 메모리를 구성하기위한 잠재적인 DRAM의 대안으로 고려되고 있다.
그러나 MLC STT-MRAM은 단일 레벨 셀(SLC) STT-MRAM보다 대기 시간이 길고 에너지 소비가 높으며 내구성이 약하다. 이것은 MLC STT-MRAM이 복잡한 다단계 저항 상태 전이 및 검출 프로세스를 필요로 하기 때문이다. 이전의 연구들은 캐시 기반 메모리 액세스를 위해 MLC STT-MRAM의 성능 저하를 완화 시켰지만, 영상 서비스에서 애플리케이션 기반 메모리 액세스에는 효과적이지 못했다.
한편, 인공 지능 및 고화질 영상 어플리케이션에 대한 요구로 인해 영상의 해상도와 주 메모리에서 동시에 처리되는 영상 수가 빠르게 증가하고 있다. 이러한 영상 어플리케이션에 사용되는 DRAM은 거의 스케일링 한계에 도달했기 때문에 MLC STT-MRAM은 확장 가능한 DRAM 대안 중 하나로 간주된다. 비디오 프로세서는 블록 기반의 MPEG(Moving Picture Experts Group) 1/2/4, H.264/AVC(Advanced Video Coding) 및 H.265/HEVC(high efficiency video coding) 표준을 통해 영상을 인코딩 또는 디코딩한다. 또한, 콘볼루션 신경망(convolutional neural network)에서의 심층 학습을 위한 GPGPU(Graphics Processing Unit)의 범용 컴퓨팅은 영상에 블록 기반 콘볼루션 연산을 수행한다. 이러한 블록 기반 방식으로 영상을 액세스하는 비디오 프로세서 및 GPGPU는 종래의 영상-메모리 매핑 기술 하에서 영상 블록을 액세스하기 위해 MLC STT-MRAM의 몇몇 행을 활성화 및 비활성화 시킨다. MLC STT-MRAM이 활성화되는 동안에는 목표 행의 모든 메모리 셀의 데이터가 읽어지고, 행 버퍼로 이동된다. 또한, 행 버퍼의 데이터는 MLC STT-MRAM이 비활성화 되는 동안 목표 행의 메모리 셀에 기록된다. 메모리 셀의 기록 및 읽기 동작이 각각 복잡한 저항 상태 전이 및 검출 프로세스를 통해 수행되기 때문에, 영상 블록을 액세스하는 것은 MLC STT-MRAM의 성능 및 에너지 소비를 상당히 악화시킨다. 더욱이, MLC STT-MRAM은 메모리 셀당 쓰기 동작의 증가로 인해 빠르게 열화 될 수 있다.
MLC 기술은 스토리지 용량을 크게 늘리는 반면 성능, 전력 소모 및 내구성을 심각하게 저하시킬 수 있다. 따라서, MLC STT-MRAM에 대한 다양한 연구가 수행되고 있다. 논문 [L. Jiang, B. Zhao, Y. Zhang, and J. Yang, "Constructing large and fast multi-level cell stt-mram based cache for embedded processors," in Proceedings of the 49th Annual Design Automation Conference. ACM, 2012, pp. 907-912]에서는 쓰기 대기 시간을 줄이기 위해 라인 페어링(line pairing, LP)과 라인 스와핑 (line swapping, LS) 기법이 제안되었다. LP는 쓰기가 더 빠른 MLC 소프트 비트를 재구성하여 빠른 캐시 라인을 형성한다. LS는 자주 쓰는 데이터를 빠른 캐시 라인에 동적으로 저장한다. 또한, 논문 [Y. Chen, W.-F. Wong, H. Li, and C.-K. Koh, "Processor caches with multi-level spin-transfer torque ram cells," in Proceedings of the 17th IEEE/ACM international symposium on Low-power electronics and design. IEEE Press, 2011, pp. 73-78]에서는 MLC STT-MRAM 캐시의 내구성을 잠재적으로 향상시킬 수 있는 설정 재 매핑 기법이 제안되었다. 또한, 논문 [P. Chi, C. Xu, X. Zhu, and Y. Xie, "Building energy-efficient multi-level cell stt-mram based cache through dynamic data-resistance encoding," in Quality Electronic Design (ISQED), 2014 15th International Symposium on. IEEE, 2014, pp. 639-644]에서는 쓰기 에너지가 데이터 값에 대해 강한 의존성을 가지므로 가장 자주 나타나는 데이터 패턴을 런타임에 가장 에너지 효율적인 저항 상태로 매핑하는 동적 인코딩 기술이 제안되었다. 또한, 논문 [J. Wang, P. Roy, W.-F. Wong, X. Bi, and H. Li, "Optimizing mlc-based stt-ram caches by dynamic block size reconfiguration," in Computer Design (ICCD), 2014 32nd IEEE International Conference on. IEEE, 2014, pp. 133-138]에서는 MLC STT-MRAM 마지막 단계 캐시에 대한 캐시 블록 크기를 동적으로 재구성하기 위해 아키텍처 설계가 제안되었다. 이 접근 방식은 일정한 최신 데이터 청크를 작은 블록에 배치하여 낮은 대기 시간과 에너지의 이점을 얻고 나머지는 큰 블록으로 배치하여 전반적인 적중률을 유지한다. 또한, 논문 [H. Luo, J. Hu, L. Shi, C. J. Xue, and Q. Zhuge, "Two-step state transition minimization for lifetime and performance improvement on mlc stt-ram," in Design Automation Conference (DAC), 2016 53nd ACM/EDAC/IEEE. IEEE, 2016, pp. 1-6]에서는 캐시 설계에서 MLC STT-MRAM의 내구성을 향상시키기 위해 TS 저항 상태 전이 최소화 기법이 제안되었다. 논문 [X. Chen, N. Khoshavi, R. F. DeMara, J. Wang, D. Huang, W. Wen, and Y. Chen, "Energy-aware adaptive restore schemes for mlc stt-ram cache," IEEE Transactions on Computers, vol. 66, no. 5, pp. 786-798, 2017]에서는 쓰기 및 읽기 장애에 대한 적응 복원 기법을 설계하고 분석 하였다. 이 기법은 캐시 블록의 향후 읽기 동작에 대한 경량 예측 접근법을 기반으로 한다. 그러나 고품질의 인공 지능 비디오 서비스가 급속하게 요구됨에 따라 MLC STT-MRAM의 사용은 다양한 하드웨어 가속기 또는 엔진을 내장 한 스마트 멀티미디어 시스템에서 상당한 주목을 받고 있다. 따라서 MLC STT-MRAM의 단점은 캐시뿐만 아니라 고유 한 메모리 액세스 패턴을 갖는 비디오 및 그래픽 가속기 또는 엔진에 대해서도 완화되어야 한다.
또한, 멀티미디어 시스템에 비 휘발성 메모리를 사용하는 것에 관한 연구가 있다. 논문 [L. C. Stancu, L. A. D. Bathen, N. Dutt, and A. Nicolau, "Avid: Annotation driven video decoding for hybrid memories," in Embedded Systems for Real-time Multimedia (ESTIMedia), 2012 IEEE 10th Symposium on. IEEE, 2012, pp. 2-11]에서는 하이브리드 메모리 제어 시스템을 위해 AVid라 불리는 주석 구동 비디오 디코딩 기술이 제안되었다. AVid는 비디오 디코더 액세스 패턴을 추출하여 비 휘발성 메모리의 물리적 특성을 활용하고 메타 정보를 사용하여 쓰기 오버 헤드를 최소화함으로써 에너지 절감 및 성능을 향상시킨다. 논문 [Y. Fang, H. Li, and X. Li, "Lifetime enhancement techniques for pcmbased image buffer in multimedia applications," IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 22, no. 6, pp. 1450-1455, 2014]에서 PRAM은 멀티미디어 시스템에서 영상 프레임 버퍼로 사용되었다. PRAM 기반 영상 프레임 버퍼의 내구성을 향상시키기 위해 데이터 비교를 사용한 중복 기록이 제거된다. 또한 논문 [F. Sampaio, M. Shafique, B. Zatt, S. Bampi, and J. Henkel, "Energyefficient architecture for advanced video memory," in Computer-Aided Design (ICCAD), 2014 IEEE/ACM International Conference on. IEEE, 2014, pp. 132-139]에서는 하이브리드 설계(SRAM 및 STT-MRAM)를 사용하여 사적 및 공유 메모리를 결합하는 에너지 효율적인 하이브리드 온칩 비디오 메모리 아키텍처가 제시된다. 논문 [W. Jang, "Multi-level cell stt-ram controller for multimedia applications," Electronics Letters, vol. 53, no. 1, pp. 12-14, 2016]에서는 멀티미디어 시스템을 위한 MLC STT-MRAM의 성능 및 전력 패널티를 제거한 MLC STT-MRAM 컨트롤러가 제안되었다.
이러한 다른 비 휘발성 메모리에 대한 이전 연구는 MLC STT-MRAM에 적용 할 수 없거나 MLC STT-MRAM의 단점을 부분적으로 완화시킨다. 따라서 멀티미디어 시스템에서 MLC STT-MRAM 단점을 완전히 완화하는 MLC STT-MRAM 인식 메모리 서브시스템이 연구되어야 할 필요가 있다.
공개특허공보 제10-2017-0086390호
이에 본 발명은 상기와 같은 종래의 제반 문제점을 해소하기 위해 제안된 것으로, 본 발명의 목적은 MLC STT-MRAM을 이용한 영상 저장에 있어서, MLC-인식 영상 프레임 버퍼 구성, 블록-인식 픽셀 대 메모리 매핑 및 예측 인식 영상 대 버퍼 할당 기술이 적용된 메모리 제어 장치 및 방법을 제공하기 위한 것이다.
상기와 같은 목적을 달성하기 위하여 본 발명의 기술적 사상에 의한 MLC STT-MRAM에 영상을 저장하는 메모리 제어 장치는, MLC STT-MRAM에서 MTJ의 하드도메인 또는 소프트도메인으로만 영상 프레임 버퍼를 구성하는 것을 특징으로 한다.
또한, 상기 MLC STT-MRAM의 MTJ에 전류를 공급하는 것으로 자유층의 상기 하드도메인 또는 상기 소프트도메인의 자화 방향을 제어하는 자화제어부와, 상기 자화제어부를 이용하여 블록 내의 모든 영상 픽셀을 영상 프레임 버퍼의 단일 행에 매핑시키는 매핑부를 포함하는 것을 특징으로 할 수 있다.
또한, 상기 매핑부는 행-버퍼 히트(row-buffer hit) 조건 하에서 액세스된 블록 내의 모든 부분 라인(partial-line)을 생성하는 것을 특징으로 할 수 있다.
또한, 상기 매핑부는 2차원의 블록 쓰기 요청을 1차원의 블록 쓰기 요청으로 변환하는 것을 특징으로 할 수 있다.
또한, 상기 블록은 n개의 연속 영상 라인 내의 동일한 열 위치에 있는 부분 라인으로 구성되는 것을 특징으로 할 수 있다.
또한, 상기 매핑부는 2차원의 블록 읽기 요청을 1차원의 블록 읽기 요청으로 변환하는 것을 특징으로 할 수 있다.
또한, 상기 매핑부는 읽기된 블록이 저장된 블록과 수평 정렬되지 않을 경우, 읽기된 블록을 좌측 및 우측 부분 블록으로 분할하여 읽는 것을 특징으로 할 수 있다.
또한, 상기 매핑부는 읽기된 블록이 저장된 블록과 수직 정렬되지 않을 경우, 읽기된 블록을 상위 및 하위 부분 블록으로 분할하여 읽는 것을 특징으로 할 수 있다.
또한, 상기 매핑부는 읽기된 블록이 저장된 블록과 수평 및 수직 정렬되지 않을 경우, 읽기된 블록을 상부 좌측, 상부 우측, 하부 좌측 및 하부 우측 부분 블록으로 분할하여 읽는 것을 특징으로 할 수 있다.
또한, 상기 자화제어부를 이용하여 상시 참조되는 영상은 상기 하드도메인에 기록되고, 상시 변경되는 영상은 상기 소프트도메인에 기록되게 하는 영상 배치부를 더 포함하는 것을 특징으로 할 수 있다.
또한, 상기 상시 참조되는 영상은 I 픽처 및 P 픽처이고, 상기 상시 변경되는 영상은 B 픽처인 것을 특징으로 할 수 있다.
또한, 상기 I 픽처 및 상기 P 픽처는 디코딩되어 상기 하드도메인으로 구성된 영상 프레임 버퍼에 저장되고, 상기 B 픽처는 디코딩되어 상기 소프트도메인으로 구성된 영상 프레임 버퍼에 저장되는 것을 특징으로 할 수 있다.
또한, 상기와 같은 목적을 달성하기 위하여 본 발명의 기술적 사상에 의한 MLC STT-MRAM에 영상을 저장하는 메모리 제어 방법은, 매핑부가 MLC STT-MRAM의 MTJ에 전류를 공급하는 것으로 자유층의 하드도메인 또는 소프트도메인의 자화 방향을 제어하는 자화제어부를 이용하여 블록 내의 모든 영상 픽셀을 영상 프레임 버퍼의 단일 행에 매핑시키는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 매핑부는 행-버퍼 히트(row-buffer hit) 조건 하에서 액세스된 블록 내의 모든 부분 라인(partial-line)을 생성하는 것을 특징으로 할 수 있다.
또한, 상기 매핑부는 2차원의 블록 쓰기 요청을 1차원의 블록 쓰기 요청으로 변환하는 것을 특징으로 할 수 있다.
또한, 상기 블록은 n개의 연속 영상 라인 내의 동일한 열 위치에 있는 부분 라인으로 구성되는 것을 특징으로 할 수 있다.
또한, 상기 매핑부는 2차원의 블록 읽기 요청을 1차원의 블록 읽기 요청으로 변환하는 것을 특징으로 할 수 있다.
또한, 상기 매핑부는 읽기된 블록이 저장된 블록과 수평 정렬되지 않을 경우, 읽기된 블록을 좌측 및 우측 부분 블록으로 분할하여 읽는 것을 특징으로 할 수 있다.
또한, 상기 매핑부는 읽기된 블록이 저장된 블록과 수직 정렬되지 않을 경우, 읽기된 블록을 상위 및 하위 부분 블록으로 분할하여 읽는 것을 특징으로 할 수 있다.
또한, 상기 매핑부는 읽기된 블록이 저장된 블록과 수평 및 수직 정렬되지 않을 경우, 읽기된 블록을 상부 좌측, 상부 우측, 하부 좌측 및 하부 우측 부분 블록으로 분할하여 읽는 것을 특징으로 할 수 있다.
또한, 상기 매핑부가 자화제어부를 이용하여 블록 내의 모든 영상 픽셀을 영상 프레임 버퍼의 단일 행에 매핑시키는 단계는, 영상 배치부가 상기 자화제어부를 이용하여 상시 참조되는 영상은 상기 하드도메인에 기록되고, 상시 변경되는 영상은 상기 소프트도메인에 기록되게 하는 단계를 포함하는 것을 특징으로 할 수 있다.
또한, 상기 상시 참조되는 영상은 I 픽처 및 P 픽처이고, 상기 상시 변경되는 영상은 B 픽처인 것을 특징으로 할 수 있다.
또한, 상기 I 픽처 및 상기 P 픽처는 디코딩되어 상기 하드도메인으로 구성된 영상 프레임 버퍼에 저장되고, 상기 B 픽처는 디코딩되어 상기 소프트도메인으로 구성된 영상 프레임 버퍼에 저장되는 것을 특징으로 할 수 있다.
본 발명에 의한 MLC STT-MRAM에 영상을 저장하는 메모리 제어 장치 및 방법에 따르면,
첫째, 본 발명은 복잡한 저항 변화 및 검출 프로세스를 최소화하므로 영상 애플리케이션을 위한 MLC STT-MRAM의 성능, 전력 소모 및 내구성을 향상시키게 된다.
둘째, 영상의 접근 순서에 따라 영상 프레임 버퍼를 구성하는 MLC STT-MRAM의 성능이 향상되고, 소비 전력이 더욱 감소된다.
셋째, 본 발명에 따른 블록 인식 픽셀 대 메모리(block-aware pixel-to-memory) 매핑과, 예측 인식 영상 대 버퍼(prediction-aware image-to-buffer) 할당 기술은 2단계 저항 상태 전이 및 탐지 프로세스를 덜 필요로 한다.
넷째, 본 발명은 종래기술에 비해 메모리 성능이 크게 향상되고, 메모리 사용량을 줄이는 효과를 가진다. 또한, 본 발명은 인공 지능 영상 애플리케이션의 성능을 더욱 향상시킬 수 있는 기회를 제공한다.
도 1은 본 발명의 일 실시예에 따른 메모리 제어 장치의 구성도.
도 2는 (a)SLC MTJ, (b)병렬 MLC MTJ, (c)직렬 MLC MTJ의 구조를 나타낸 도면.
도 3은 병렬 MLC MTJ에서 (a)쓰기 과정과, (b)읽기 과정을 나타낸 순서도.
도 4는 MLC STT-MRAM의 뱅크(bank) 구조를 나타낸 도면.
도 5는 종래의 직접 픽셀 대 메모리 매핑 기술로서, (a)그래픽 표현 및 (b)열, 뱅크, 행 주소의 매핑을 나타낸 도면.
도 6은 본 발명의 일 실시예에 따른 블록-인식 픽셀 대 메모리 매핑 기술로서, (a)그래픽 표현 및 (b)열, 뱅크, 행 주소의 매핑을 나타낸 도면.
도 7은 본 발명의 일 실시예의 STT-MRAM에 블록을 저장하는 알고리즘 코드를 나타낸 도면.
도 8은 본 발명의 일 실시예에 따른 메모리 서브시스템의 블록 쓰기 작업으로서, (a)1차원 쓰기 요청을 병합하기 전과, (b)1차원 쓰기 요청을 병합한 후를 나타낸 도면.
도 9는 본 발명의 일 실시예의 디스플레이 프로세서(DP)를 위한 영상 읽기 알고리즘 코드를 나타낸 도면.
도 10은 본 발명의 일 실시예에 따른 4개의 영상 라인을 위한 읽기 작업을 나타낸 도면.
도 11은 본 발명의 일 실시예의 VP 및 GPGPU에 대한 영상 읽기 알고리즘 코드를 나타낸 도면.
도 12는 본 발명의 일 실시예에 따른 메모리 서브시스템의 영상 블록 읽기 동작으로서, (a)정렬된 블록과, (b)정렬되지 않은 블록을 나타낸 도면.
도 13은 종래기술의 순차 영상 대 버퍼 할당 기법으로서, (a)인코더 및 (b)디코더를 나타낸 도면.
도 14는 본 발명의 일 실시예에 따른 메모리 서브시스템의 예측-인식 영상 대 버퍼 할당 기법으로서, (a)인코더 및 (b)디코더를 나타낸 도면.
도 15은 본 발명의 일 실시예에 따른 모니터 장치의 구성도.
도 16은 종래기술 및 본 발명의 실시예를 (a)자가 운전 차량 및 (b)데이터 센터를 이용하여 실행 시간을 비교한 그래프.
도 17은 종래기술 및 본 발명의 실시예를 (a)자가 운전 차량 및 (b)데이터 센터를 이용하여 전력 소비를 비교한 그래프.
첨부한 도면을 참조하여 본 발명의 실시예들에 의한 MLC STT-MRAM에 영상을 저장하는 메모리 제어 장치 및 방법에 대하여 상세히 설명한다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
또한, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명의 실시예에 따른 메모리 제어 장치(100)는 MLC-인식 영상 프레임 버퍼(MLC-aware image frame buffer) 구성, 블록-인식 픽셀 대 메모리(block-aware pixel-to-memory) 매핑 및 예측 인식 영상 대 버퍼(prediction-aware image-to-buffer) 할당 기술을 통해 2단계(TS, two-step)의 저항 상태 감지 프로세스(resistance state detection processes) 및 저항 상태 전환 프로세스(resistance state transition processes)의 발생을 최소화한다.
MLC-인식 영상 프레임 버퍼 구조 기술에서 각 MLC는 하드도메인(Hard domain)과 소프트도메인(Soft domain)으로 분할되며, 영상 프레임 버퍼는 하드도메인 또는 소프트도메인으로 구성되지만, 두 도메인 모두로 구성되지는 않는다. 또한, 블록-인식 픽셀 대 메모리 매핑 기법은 블록 내의 모든 영상 픽셀을 영상 프레임 버퍼의 단일 행에 매핑한다. 마지막으로, 예측-인식 영상 대 버퍼(prediction-aware image-to-buffer) 할당 기법은 하드도메인으로 구성된 영상 프레임 버퍼에 인트라 코딩 된 I(Infra-coded frame) 및 예측 코딩 된 P(Predictive-coded frame) 픽처를 할당한다. 대조적으로, 양방향 예측 코딩 된 B(Bidirectionally predictive-coded frame) 픽처가 소프트도메인으로 구성된 영상 프레임 버퍼에 할당된다. 이에 의해 TS 저항 상태 감지 프로세스 및 저항 상태 전환 프로세스가 적게 이용되기 때문에 영상 저장을 위한 MLC STT-MRAM(20)의 성능, 전력 및 내구성 페널티가 제거 될 수 있게 된다.
구체적으로, 도 1을 참조하면, 본 발명의 실시예에 따른 메모리 제어 장치(100)는 MLC STT-MRAM(20)의 MTJ와 연결되어 전류를 공급하는 것으로 자유층의 하드도메인과 소프트도메인의 자화 방향을 제어하는 자화제어부(110)와, 자화제어부(110)를 이용하여 MTJ의 단일 도메인으로 영상 프레임 버퍼를 구성하고, 블록 내의 모든 영상 픽셀을 영상 프레임 버퍼의 단일 행에 매핑시키는 매핑부(140)를 포함한다. 또한, MTJ에 감지 전류를 인가하는 것으로 하드도메인 또는 소프트도메인의 자화 방향을 검출하는 판독부(120)도 포함한다.
도 2를 참조하면, SLC의 자기 터널링 정션에 있어서, STT-MRAM은 데이터 저장 장치로서 자기 터널링 정션(MTJ, magnetic tunneling junction)을 이용한다. 도 2(a)와 같이, MTJ는 산화물장벽(MgO)으로 분리 된 두 개의 강자성 층으로 구성되어있다. 하나의 강자성층(이하, 기준층)의 자화 방향은 고정되어있는 반면, 다른 강자성층(이하, 자유층)의 자화 방향은 전류를 통과시킴으로써 변경 될 수 있다. 두 층이 동일한 자화 방향을 갖는 경우, MTJ는 낮은 저항을 가지며, 논리 '0'(R0으로 표시됨)을 나타낸다. 반대로, 두 층의 자화 방향이 상이한 경우, MTJ는 높은 저항을 가지며, 논리 '1'(R1로 표시됨)을 나타낸다. 기록 동작 시, MTJ를 통해 전류를 생성 할 수 있는 전압이 소스 라인(SL)과 비트 라인(BL) 사이에 인가되어 자유층의 자화 방향을 스위칭한다. 읽기 동작 시, 작은 감지 전류가 인가되어 비트 라인 전압(
Figure 112018037607118-pat00001
)을 생성한다. 이어서, 전압을 기준 전압(
Figure 112018037607118-pat00002
)과 비교하여 R0 또는 R1이 MTJ에 저장되는지 여부를 결정한다.
또한, MLC 자기 터널링 정션(MTJ)에 있어서, MLC STT-MRAM(20)은 단일 셀에 2bit 데이터를 저장함으로써 저장 밀도를 향상시킬 수 있다. 자화제어부(110)는 MTJ의 소스 라인(SL)과 비트 라인(BL)에 연결된다. MLC STT-MRAM(20)에는 병렬 MLC STT-MRAM과 직렬 MLC STT-MRAM의 두 가지 유형이 있다. 도 2(b)를 참조하면, 병렬 MLC STT-MRAM에서 MTJ의 자유층은 상이한 자기 특성을 갖는 소프트도메인 및 하드도메인으로 분할된다. 도 2(c)를 참조하면, 직렬 MLC STT-MRAM은 MgO 및 강자성층의 크기가 서로 상이한 두 개의 MTJ가 수직으로 적층되어있다. 크기가 작은 MTJ는 소프트도메인이 되고, 크기가 큰 MTJ는 하드도메인이 된다. 이러한 MLC MTJ는 4개의 저항 상태를 갖는다[
Figure 112018037607118-pat00003
]. 여기서 h는 하드도메인의 저항 상태이고, s는 소프트도메인의 저항 상태이다. 병렬 MLC MTJ는 셀 면적이 작고 스위칭 전류는 낮지만 직렬 MLC MTJ보다 제작하기가 어려우며, 오류에 대한 내성이 낮다. 아래의 설명에서는 병렬 MLC MTJ를 중심으로 설명하나, 직렬 MLC MTJ에도 적용이 가능하다.
도 3을 참조하면, 도 3(a)는 쓰기 동작 시 병렬 MLC MTJ의 저항 상태 전이 프로세스를 나타낸다. 저항 상태 전이 프로세스는 제로 스텝(ZS) 트랜지션, 원스텝(OS) 트랜지션 및 투스텝(TS) 트랜지션 프로세스로 분류된다. ZS 트랜지션은 하드도메인과 소프트도메인이 모두 자체 저항 상태를 유지하는 것을 나타낸다. OS 트랜지션은 다음 두 가지 경우에 발생할 수 있다. 하나는 하드도메인이 자체 저항 상태를 유지하고, 소프트도메인의 저항 상태가 전환되는 것이다(예: R00↔R01, R10↔R11). 소프트도메인의 스위칭만을 위해 작은 스위칭 전류(
Figure 112018037607118-pat00004
)가 인가된다. 다른 하나는 하드도메인이 소프트도메인과 동일한 저항 상태로 전환된다는 것이다(예: R10→R00, R01→R11 및 R00↔R11). 큰 쓰기 전류(
Figure 112018037607118-pat00005
)는 MLC MTJ에 인가된다. 하드도메인이 소프트도메인과 반대 저항 상태로 전환되는 경우에는 TS 전환 프로세스가 필요하다(예: R00→R10, R01↔R10 및 R11→R01).
이러한 저항 상태 전이는 간단히 전환되지 않는다. 첫 번째 단계에서는
Figure 112018037607118-pat00006
를 인가해야한다.
Figure 112018037607118-pat00007
는 하드도메인뿐만 아니라 소프트도메인의 자화 방향도 전환하므로 두 번째 단계로서
Figure 112018037607118-pat00008
가 소프트도메인에 인가된다. R00, R01, R10 및 R11의 저항 상태는 R11, R11, R00 및 R00의 저항 상태를 통해 각각 R10, R10, R01 및 R01의 저항 상태로 전환된다.
도 3(b)는 전압 감지에 기초한 읽기 동작에 대한 병렬 MLC MTJ의 저항 상태 검출 프로세스를 나타낸다. 첫째, 작은 감지 전류가
Figure 112018037607118-pat00009
을 유도하기 위해 인가된다. 이분법(Dichotomic) 검색(또는 이진 탐색) 알고리즘에 기초하여, 그 전압은 3개의 기준 전압 중 2개와 비교된다. 병렬 MLC MTJ에서 하드도메인의 저항 상태는 먼저
Figure 112018037607118-pat00010
을 제1 기준 전압(
Figure 112018037607118-pat00011
)과 비교함으로써 검출된다. 그 후, 소프트도메인의 저항 상태가 검출된다.
Figure 112018037607118-pat00012
Figure 112018037607118-pat00013
보다 높으면
Figure 112018037607118-pat00014
이 제2 기준 전압(
Figure 112018037607118-pat00015
)과 비교된다. 그렇지 않으면
Figure 112018037607118-pat00016
이 제3 기준 전압(
Figure 112018037607118-pat00017
)과 비교된다.
MLC STT-MRAM(20) 아키텍처에 있어서, MLC STT-MRAM(20)은 DRAM과 유사한 뱅크, 행 및 열로 구성된다. 도 4는 종래의 MLC STT-MRAM의 뱅크 구조를 도시한다. 큰 검은 점은 하나의 트랜지스터와 하나의 병렬 MLC MTJ를 포함하는 메모리 셀을 나타낸다. MLC STT-MRAM은 주로 활성화, 읽기(또는 쓰기) 및 비활성화 요청을 실행한다.
활성화 요청은 대상 뱅크에서 단일 행을 활성화하는 데 사용된다. 결과적으로 선택된 행의 모든 MLC MTJ에 저장된 데이터가 행 버퍼(Row buffer)에 복사된다. 활성화 요청의 경우 대상 뱅크가 유휴 상태 일 때
Figure 112018037607118-pat00018
,
Figure 112018037607118-pat00019
Figure 112018037607118-pat00020
신호는 각각 low, high 및 high로 만들어진다. 일반적으로 VP 및 GPGPU로부터 수신 된 물리적 주소는 채널, 랭크, 행, 뱅크 및 열 주소로 디코딩된다. 각 뱅크는 수백 개의 서브 어레이로 구성되기 때문에 행 주소의 일부 bit가 서브 어레이를 선택하는데 사용된다. 행 주소 bit의 나머지는 행 디코더에서 디코딩되고, 활성화 신호는 행 디코더에 의해 선택된 워드라인(Wordline)으로 생성된다. 워드라인은 단일 행의 모든 메모리 셀에 연결된다. 메모리 셀의 워드라인에 의해 ON된 트랜지스터는 MLC MTJ를 소스라인(Source line)에 연결시켜 감지 전류를 MLC MTJ에 인가한다. MLC MTJ를 통해 흐르는 전류의 양은 MLC MTJ의 저항에 의존한다. 감지 증폭기는
Figure 112018037607118-pat00021
을 검출하고, 위에서 도 3을 참조하여 설명된 바와 같이, 3개의 기준 전압 중 2개와 전압을 비교한다. 마지막으로 MLC MTJ 당 2bit 데이터가 대상 뱅크의 행 버퍼에 기록된다.
읽기(또는 쓰기) 요청은 행 버퍼의 데이터를 읽거나 쓰는 데 사용된다. 읽기(또는 쓰기) 요청의 경우 대상 뱅크가 활성 일 때
Figure 112018037607118-pat00022
,
Figure 112018037607118-pat00023
Figure 112018037607118-pat00024
신호가 각각 high, low 및 high(또는 low)로 설정된다. 열 주소는 디코드되고, 열 선택기(Column selector)는 버스트 길이(burst length) 동안 데이터를 메모리 제어 장치(100)로 전송한다.
비활성화 요청은 행 버퍼의 모든 데이터를 대상 뱅크의 활성화된 행의 해당 MLC MTJ로 이동시키는데 사용된다. 비활성화 요청의 경우
Figure 112018037607118-pat00025
,
Figure 112018037607118-pat00026
Figure 112018037607118-pat00027
신호는 각각 low, high 및 low로 설정된다. 비활성화 요청은 다음 두 가지 방법 중 하나로 구현될 수 있다. 하나는 행 버퍼의 해당 데이터와 다른 데이터가 있는 MLC MTJ만 업데이트 된다는 것이다. 즉, 활성화된 행에서의 모든 MLC MTJ의 저항 상태는 TS 저항 상태 검출 프로세스에 의해 검출되고, 행 버퍼의 데이터와 비교된다. 이어서, MLC MTJ 마다 ZS, OS 및 TS 저항 상태 전이 프로세스 중 하나가 수행된다. 이러한 방식은 추가적인 TS 저항 상태 검출 및 MLC MTJ 마다 비교 프로세스로 인해 비싼 설계비용과 긴 대기 시간을 초래한다. 다른 하나는 연속적인 2개의 OS 저항 상태 전이 프로세스가 활성화된 행의 모든 MLC MTJ에서 수행되는 것이다. 즉, 행 버퍼 내의 홀수 bit는 OS 저항 상태 전이 프로세스를 통해 행의 모든 MLC MTJ의 하드도메인에 기록된다. 그 다음, 행 버퍼의 짝수 bit는 양 영역의 저항 상태가 서로 다른 경우에 OS 저항 상태 전이 프로세스를 통해 행의 모든 MLC MTJ의 소프트도메인에 기록된다.
VP와 GPGPU는 콘볼루션 신경망에서 심층적인 학습을 수행하고 블록 단위로 영상을 쓰고 읽는 산업용 비디오 코딩 알고리즘을 수행한다. 각 영상 라인이 MLC STT-MRAM의 단일 행에 저장되면 블록에 대해 여러 행 및 뱅크가 액세스되므로 여러 활성화 및 비활성화 작업이 수행된다. 복잡한 프로세스를 요구하는 활성화 및 비활성화 동작은 MLC STT-MRAM의 성능을 저하시키고, 전력 소모를 증가시킨다. 아래에서는 VP 및 GPGPU의 영상 블록 액세스가 MLC STT-MRAM(20)의 성능, 전력 소비 및 내구성을 저하시키는 현상을 설명한다.
도 5는 4:2:0 컬러 포맷으로 캡쳐된 UHD 8K 영상을 위한 직접 픽셀-메모리 매핑 기술을 나타낸다.
영상의 휘도 성분을 저장하는 경우 MLC STT-MRAM의 문제점을 소개한다. MLC STT-MRAM은 8 byte 데이터 버스를 통해 메모리 제어 장치(100)에 상호 연결되며 쓰기 및 읽기 요청 당 8개의 전송을 수신 및 생성한다. 또한, MLC STT-MRAM은 각각이 r개의 행을 갖는 4개의 뱅크를 포함한다. 각 행은 32,768 MLC MTJ로 구성되어 있기 때문에 8,192 byte의 데이터를 저장할 수 있다.
따라서, 도 5(a)에 도시된 바와 같이, 영상 라인의 휘도는 단일 행에 저장 될 수 있다. 결과적으로 MLC STT-MRAM(20)에 액세스하기 위한 열, 뱅크, 행, 랭크(rank) 및 채널 주소는 그림 4(b)와 같이 주어진 메모리 주소로 구성된다.
이때, 그림 4(a)에서 2개의 16*16 영상 블록이 MLC STT-MRAM(20)에 기록된다고 가정한다. 1*16 영상 블록을 부분 라인이라고 칭한다. 4개의 MLC MTJ는 하나의 픽셀을 저장하며 하드도메인 및 소프트도메인은 각각 픽셀의 짝수 및 홀수 bit를 저장한다. 부분 라인 [0-3, 0]은 뱅크 0 부터 뱅크 3까지의 첫 번째 행에 각각 저장되므로, 각 뱅크는 첫 번째 행으로 활성화된다. 행 활성화는 TS 저항 상태 검출 프로세스에 의해 읽기 된 첫 번째 행의 모든 MLC MTJ의 데이터를 행 버퍼에 저장한다. 그런 다음, 부분 라인 [0-3, 0]이 각각 뱅크 0 부터 뱅크 3까지의 행 버퍼에 기록된다. 다음으로, 부분 라인 [4-7, 0]은 뱅크 0 부터 뱅크 3까지의 두 번째 행에 각각 저장되어야 한다. 각 뱅크는 현재 첫 번째 행이 활성화되어 있으므로 먼저 비활성화 되어야한다. 각 뱅크가 비활성화 되면 행 버퍼의 모든 데이터는 첫 번째 행의 MLC MTJ에 기록된다.
목표 시스템에서 MLC STT-MRAM(20)의 성능이 중요한 경우, 행 버퍼 내의 모든 짝수 bit는 첫 번째 OS 저항 상태 전이 프로세스에서 MLC MTJ의 하드도메인에 기록되어야하고, 행 버퍼 내의 모든 홀수 bit는 두 번째 OS 저항 상태 전이 프로세스에서 MLC MTJ의 소프트도메인에 기록되어야한다.
만약, MLC STT-MRAM(20)의 전력 소비 및 내구성이 목표 시스템에서 더욱 중요하다면, 각 MLC MTJ 내의 데이터는 TS 저항 상태 검출 프로세스를 통해 다시 읽기되어야하고, 행 버퍼의 모든 데이터는 MLC MTJ와 행 버퍼의 데이터 비교에 따라 세 가지 저항 상태 전이 프로세스 중 하나를 통해 각 MLC MTJ에 기록되어야한다.
각 뱅크는 모두 비활성화 되었기 때문에 두 번째 행으로 활성화 될 수 있다. 두 번째 행의 모든 MLC MTJ의 데이터는 TS 저항 상태 검출 프로세스에 의해 읽기되고, 각 뱅크의 행 버퍼에 저장된다. 그런 다음, 부분 라인 [4-7, 0]이 각각 뱅크 0 부터 뱅크 3까지의 행 버퍼에 기록된다. 뱅크 0 부터 뱅크 3까지의 두 번째 행이 비활성화 될 때, 행 내의 각각의 MLC MTJ는 행 버퍼 내의 데이터로 업데이트된다. 유사하게, 각 뱅크의 세 번째 및 네 번째 행에 부분 라인 [8-11, 0] 및 [12-15, 0]이 각각 기록 될 수 있다.
다음으로, 블록 1이 MLC STT-MRAM(20)에 기록된다. 부분 라인 [0-3, 1]이 각각 뱅크 0 부터 뱅크 3까지의 첫 번째 행에 기록되어야하므로, 네 번째 행이 활성화 된 각 뱅크는 비활성화 되고, 각 뱅크는 첫 번째 행이 다시 활성화된다. 그런 다음, 부분 라인 [0-3, 1]이 각각 뱅크 0 부터 뱅크 3까지의 행 버퍼에 기록된다. 부분 라인 [4-7, 1]에 대해 뱅크 0 부터 뱅크 3까지의 첫 번째 행이 비활성화되면 첫 번째 행의 모든 MLC MTJ가 행 버퍼의 데이터로 업데이트된다. 유사하게, 부분 라인 [4-7, 1], [8-11, 1] 및 [12-15, 1]은 각각 뱅크의 두 번째, 세 번째 및 네 번째 행에 기록된다. 이러한 블록 기록 동작은 전체 영상이 MLC STT-MRAM(20)에 저장 될 때까지 반복된다.
이러한 2차원(2D) 블록에 대한 통상적인 기록 동작은 MLC STT-MRAM(20)에서 낮은 성능, 높은 전력 소모 및 짧은 내구성을 초래할 수 있다. 이러한 직접 픽셀-메모리 매핑 기술 하에서, MLC STT-MRAM(20)에 단일 블록을 기록하는 것은 부분 라인의 수만큼 활성화 및 비활성화 동작을 필요로 한다. 활성화 및 비활성화 작업은 복잡한 저항 상태 감지 및 전환 프로세스의 조합을 통해 수행된다. 따라서 MLC STT-MRAM(20)에 단일 16*16 블록을 기록하려면 높은 성능을 목표로 하는 VP 및 GPGPU에서 16개의 TS 저항 상태 검출 프로세스와 32개의 OS 저항 상태 전이 프로세스가 필요하다. 행 버퍼의 데이터는 각 도메인에 저장된 데이터에 관계없이 MLC MTJ의 하드도메인에 기록 된 다음 MLC MTJ의 소프트도메인에 기록된다. 따라서, VP 및 GPGPU는 상대적으로 빠른 기록 동작을 수행 할 수 있다. 그러나 하나의 영상을 저장하기 위해 각 MLC MTJ는 480개의 TS 저항 상태 검출 프로세스, 하드도메인을 스위칭하기 위한 480개의 OS 저항 상태 전이 프로세스 및 소프트도메인을 스위칭하기 위한 480개의 OS 저항 상태 전이 프로세스를 통해 액세스된다. 그 이유는, 행에 있는 단일 MLC MTJ가 업데이트 되더라도 행에 있는 모든 MLC MTJ가 액세스되기 때문이다. 따라서 고성능 VP 및 GPGPU는 매우 높은 전력 소비와 짧은 내구성을 유발할 수 있다.
반대로 저전력 및 긴 내구성을 목표로 하는 VP 및 GPGPU에는 블록 당 32개의 TS 저항 상태 검출 프로세스, 16개의 저항 상태 비교 프로세스 및 16개의 ZS, OS 또는 TS 저항 상태 전이 프로세스가 필요하다. 하나의 영상을 저장하기 위해 각 MLC MTJ는 960개의 TS 저항 상태 감지 프로세스 및 단일 OS 또는 TS 저항 상태 전이 프로세스로 액세스된다. 따라서 VP와 GPGPU는 상대적으로 낮은 전력 소비와 긴 내구성을 달성 할 수 있다. 그러나 저전력 및 긴 내구성의 VP 및 GPGPU는 극히 낮은 쓰기 성능을 초래할 수 있다. 따라서 영상 저장을 위한 MLC STT-MRAM의 성능, 전력 소모 및 내구성을 향상시키는 메모리 제어 장치가 필요하다.
본 발명의 일 실시예에 따른 메모리 제어 장치(100)는 MLC-인식 영상 프레임 버퍼 구성, 블록-인식 픽셀 대 메모리 매핑 및 예측-인식 영상 대 버퍼 할당 기술을 사용한다.
이 실시예는 복잡한 저항 변화 및 검출 프로세스를 최소화하므로 영상 저장을 위한 MLC STT-MRAM(20)의 성능, 전력 소모 및 내구성을 향상시킨다.
도 6은 본 발명의 일 실시예에 따른 픽셀-메모리 매핑 기법을 나타낸다. 종래의 영상 프레임 버퍼는 도 5와 같이 네 개의 MLC MTJ의 소프트도메인 및 하드도메인에 각 픽셀을 저장하지만, 이 실시예의 영상 프레임 버퍼는 각 픽셀을 8개의 MLC MTJ의 하드도메인이나 8개의 MLC MTJ의 소프트도메인에 저장한다.
또한, 단일 영상의 모든 픽셀은 MLC MTJ의 동일한 도메인에 저장된다. 예를 들어, 도 6(a)를 참조하면, 픽셀 0 및 1은 각각 MLC MTJ 0 부터 7 및 8 부터 15까지의 하드도메인에 저장된다. 마찬가지로 나머지 영상은 MLC MTJ의 하드도메인에 저장된다. MLC MTJ의 소프트도메인은 다른 영상을 저장할 때 사용된다.
이 실시예의 영상 프레임 버퍼는 TS 저항 상태 검출 및 전이 프로세스의 발생을 최소화한다. 예를 들어, 영상의 모든 픽셀이 MLC MTJ의 하드도메인에 기록된 경우, ZS 또는 OS 저항 상태 전이 프로세스가 필요하다. 따라서 다음 영상의 픽셀이 ZS 또는 OS 저항 상태 전이 프로세스를 통해 MLC MTJ의 소프트도메인에 기록 될 수 있다. 또한 영상이 하드도메인에 저장되어있는 경우, OS 저항 상태 감지 프로세스를 통해 영상을 읽을 수 있다. 따라서 개선된 영상의 접근 순서에 따라 이 실시예의 영상 프레임 버퍼는 MLC STT-MRAM(20)의 성능과 소비 전력을 더욱 향상시킨다.
블록을 기록하거나 읽기 위해 도 5에 도시된 종래의 픽셀-메모리 매핑 기술은 부분-라인의 수만큼 활성화 및 비활성화 동작을 필요로 한다. 활성화 및 비활성화 동작은 MLC STT-MRAM의 낮은 성능, 높은 전력 소모 및 짧은 내구성을 유발하는 복잡한 저항 상태 감지 및 전환 프로세스에 의해 수행된다. 따라서 활성화 및 비활성화 작업 횟수를 줄이는 것이 필요하다.
본 발명의 일 실시예에 따른 매핑부(140)는 도 6(a)에서와 같이, 블록을 MLC STT-MRAM(20)의 다중 행이 아닌 단일 행의 MLC STT-MRAM(20)에 저장하는 특징이 차별된다. 이러한 블록-인식(block-aware) 매핑 기술은 행-버퍼 히트(row-buffer hit) 조건 하에서 액세스된 블록 내의 모든 부분 라인(partial-line)을 생성하기 때문에, 활성화 및 비활성화 동작의 수가 최소화된다. 그 결과, 쓰기 동작의 성능, 전력 소비 및 내구성이 크게 향상될 수 있다.
반면, 종래의 매핑 기술은 비 블록 메모리 서비스(non-block memory services)를 요구하는 디스플레이 프로세서(200)에 대해 읽기 동작이 수행될 때 본 발명의 블록 액세스로부터의 이점을 감소시킬 수 있다.
MLC STT-MRAM(20)으로 구성된 메인 메모리의 총 용량을 p-byte로 가정한다. MLC STT-MRAM(20)은 각각 r개의 q-byte 행으로 구성된 b 뱅크를 포함한다. k 랭크 및 h 채널을 지원하는 메인 메모리는 랭크마다 w-byte 데이터 버스를 통해 멀티미디어 시스템에 상호 연결된다. 멀티미디어 시스템에 내장된 VP 및 GPGPU는 이 실시예의 메모리 제어 장치(100)의 주 메모리에 x-by-y 영상을 저장하기 위하여 m-by-n 블록 쓰기 요청을 전송한다.
도 7을 참조하면, 알고리즘 1은 MLC STT-MRAM(20)에서 이 실시예의 메모리 제어 장치(100)가 블록 쓰기 요청을 처리하는 방법을 보여준다. 먼저, 매핑부(140)는 2차원 블록 쓰기 요청은 알고리즘 1의 라인 2-5에 개시된 바와 같이, n개의 1차원(1D) 쓰기 요청들로 변환된다. 각 1차원 쓰기 요청
Figure 112018037607118-pat00028
는 자신의 메모리 주소
Figure 112018037607118-pat00029
에 m-byte 데이터를 저장한다. 여기서 i는 0, 1, 2, ..., n-1 이다. 블록은 n개의 연속 영상 라인 내의 동일한 열 위치에 있는 부분 라인으로 구성되므로, 쓰기 요청
Figure 112018037607118-pat00030
의 메모리 주소
Figure 112018037607118-pat00031
Figure 112018037607118-pat00032
와 같다. 이때, {z1, z2}는 z1과 z2의 bit 연결을 의미하고, a[b1 : b2]는 a의 b1에서 b2까지의 bit를 의미한다.
또한, 알고리즘 1의 라인 6-12에 개시된 바와 같이, 메모리 요청
Figure 112018037607118-pat00033
의 열, 뱅크, 행, 랭크 및 채널 주소가 메모리 주소
Figure 112018037607118-pat00034
로부터 선택된다. 이 실시예의 픽셀대 메모리 매핑 기법에서 열 주소
Figure 112018037607118-pat00035
와 뱅크 주소
Figure 112018037607118-pat00036
는 각각
Figure 112018037607118-pat00037
과,
Figure 112018037607118-pat00038
이다. 종래 매핑 기술의 뱅크 주소에 사용된 bit가 이 실시예의 매핑 기술의 열 주소에 사용되는 일부 bit로 스와핑되기 때문에, 블록 내 모든 부분 라인들은 동일한 MLC STT-MRAM(20)의 행에 저장된다. 예를 들어, 블록의 크기가 16*16 인 경우, 열 주소(Column address)
Figure 112018037607118-pat00039
및 뱅크 주소(Bank address)
Figure 112018037607118-pat00040
는 각각 도 6(b)에 도시된 바와 같이 {
Figure 112018037607118-pat00041
[13:6],
Figure 112018037607118-pat00042
[3]} 및
Figure 112018037607118-pat00043
[5:4]가 된다. 매핑 기법의 행 주소(Row address)
Figure 112018037607118-pat00044
, 랭크 주소(rank address)
Figure 112018037607118-pat00045
및 채널 주소(Channel address)
Figure 112018037607118-pat00046
는 직접 매핑 기법과 동일한 나머지 메모리 주소
Figure 112018037607118-pat00047
로 구성된다.
메모리 효율을 최대화하기 위해, MLC STT-MRAM(20)은 버스트 길이(
Figure 112018037607118-pat00048
)와 랭크 당 byte 폭(w)의 곱인 세분화된 접근(access granularity)을 갖는다. 예를 들어, 주 메모리는 랭크마다 8byte 데이터 버스를 가지며, 버스트 길이가 8로 설정된 경우 쓰기 요청마다 64byte 데이터를 저장한다. 블록의 수평 크기(m)가 64 byte 데이터보다 작은 경우, 쓰기 요청마다 m-byte 데이터는 저장되지만, 64-m byte 데이터는 버려진다.
이 실시예의 매핑 기술은 주 메모리의 고정 세분화된 접근(access granularity)을 완전히 이용한다. 이 실시예의 메모리 제어 장치(100)가 알고리즘 1에서 매핑된 열 및 뱅크 주소를 사용하기 때문에 블록은 단일 행에 저장된다. 각 1차원 쓰기 요청(
Figure 112018037607118-pat00049
)은 주 메모리에 단지 16 byte 데이터 쓰기를 요구하지만, 주 메모리는 항상 64 byte 데이터를 제공한다. 결과적으로, 도 8(a)에 도시된 바와 같이, 쓰기 요청 마다 불필요한 48 byte 데이터를 기록하는데 요구되는 시간 및 대역폭이 낭비되므로, 종래의 메모리 제어 장치가 블록을 주 메모리에 저장하기 위해서는
Figure 112018037607118-pat00050
+
Figure 112018037607118-pat00051
+128의 사이클이 소요된다. 이때,
Figure 112018037607118-pat00052
는 활성화 요청으로부터 읽기 또는 쓰기 요청까지 지연 시간이고,
Figure 112018037607118-pat00053
는 CAS(Column Access Strobe)의 쓰기 대기 시간이 된다.
이 실시예의 메모리 제어 장치(100)는 주 메모리의 대역폭을 최대한 활용하기 위해, 알고리즘 1의 13-22 행에 개시되어 있는 바와 같이, 단일 쓰기 요청으로 여러 1차원 메모리 요청을 실행한다. 도 8(a)에 있어서, 메모리 쓰기 요청(
Figure 112018037607118-pat00054
)에 대응하는 쓰기 요청은 열 주소(
Figure 112018037607118-pat00055
)에 64 byte의 데이터를 저장한다. 메모리 쓰기 요청(
Figure 112018037607118-pat00056
)은 열 주소(
Figure 112018037607118-pat00057
)부터 저장될 16 byte 데이터가 있지만
Figure 112018037607118-pat00058
+0x10부터 저장될 48 byte 데이터는 없다. 반대로 메모리 쓰기 요청
Figure 112018037607118-pat00059
,
Figure 112018037607118-pat00060
Figure 112018037607118-pat00061
Figure 112018037607118-pat00062
+0x10,
Figure 112018037607118-pat00063
+0x20 및
Figure 112018037607118-pat00064
+0x30부터 각각 16 byte 데이터를 저장한다. 따라서, 도 8(b)에 도시된 바와 같이, 메모리 쓰기 요청
Figure 112018037607118-pat00065
,
Figure 112018037607118-pat00066
,
Figure 112018037607118-pat00067
Figure 112018037607118-pat00068
은 단일 쓰기 요청에 의해 실행될 수 있다. 이와 유사하게, 메모리 쓰기 요청
Figure 112018037607118-pat00069
,
Figure 112018037607118-pat00070
,
Figure 112018037607118-pat00071
Figure 112018037607118-pat00072
은 병합 될 수 있고, 메모리 요청
Figure 112018037607118-pat00073
에 대한 쓰기 요청에 의해 실행될 수 있다. 이 절차는 블록 액세스를 위한 모든 1차원 메모리 요청이 제공 될 때까지 반복된다.
마지막으로, 이 실시예의 메모리 제어 장치(100)는 대역폭 손실 없이 4 개의 쓰기 요청을 통해 16*16 블록을 기록하므로 주 메모리에 단일 블록을 저장하기 위해
Figure 112018037607118-pat00074
+
Figure 112018037607118-pat00075
+32 사이클만 소요한다. 반면, 종래의 메모리 제어 장치는 블록을 주 메모리에 저장하기 위해
Figure 112018037607118-pat00076
+
Figure 112018037607118-pat00077
+128 사이클을 필요로 한다.
블록 인식 픽셀 대 메모리(pixel-to-memory) 매핑 기술에 의해 저장된 영상은 디스플레이 프로세서(200)(DP)에 사용된다. DP가 영상을 라인 단위로 요구하기 때문에 블록 단위로 영상에 액세스하는 메모리 제어 장치(100)는 DP의 메모리 요청을 신중하게 수행해야한다. 영상 라인(s) 내의 모든 부분 라인(s, t)은 t의 증가하는 순서로 DP에 전달되는데, 여기서 t는 영상 라인의 부분 라인 순서이다. 이 실시예의 메모리 제어 장치(100)는 블록을 단일 행에 저장하기 때문에 여러 행과 뱅크의 각 영상 행을 읽어야한다. 도 6(a)에서는, 부분 라인 (0, 0), (0, 1), (0, 2), (0, 3)은 뱅크 0, 1, 2, 3의 첫 번째 행에 저장된다. 이 실시예의 메모리 제어 장치(100)가 부분 라인을 읽을 때는 보다 적은 행 버퍼 적중(row-buffer hit) 조건과, 보다 많은 뱅크 인터리빙(bank interleaving) 조건이 발생한다. 또한, 읽기 요청은 항상 주 메모리가 (
Figure 112018037607118-pat00078
)-byte의 데이터를 생성하게 한다. m이
Figure 112018037607118-pat00079
보다 작은 경우, 읽기 요청 당 (
Figure 112018037607118-pat00080
-m)-byte 데이터는 폐기된다. 그러나 대부분의 DP에는 영상의 품질을 높이고 영상을 화면 크기로 조정하는데 사용되는
Figure 112018037607118-pat00081
라인 버퍼가 있다. 따라서 라인 버퍼의 수가 (
Figure 112018037607118-pat00082
)/m이면, 이 실시예의 메모리 제어 장치(100)는 데이터를 버릴 필요가 없다.
도 9를 참조하면, 알고리즘 2는 이 실시예의 메모리 제어 장치(100)가 주 메모리에서 영상 라인을 읽는 방법을 보여 주며, DP는 부분 라인을
Figure 112018037607118-pat00083
라인 버퍼에 저장한다. 알고리즘 2의 1-5 행에 나타낸 바와 같이, DP로부터의 메모리 요구에 기초하여, 이 실시예의 메모리 제어 장치(100)는 목표 뱅크를 활성화시키고, 읽기 요청
Figure 112018037607118-pat00084
를 전송한다. 메모리 대기 시간이 지나면 메모리 제어 장치(100)는 주 메모리에서
Figure 112018037607118-pat00085
전송을 수신한다. 알고리즘 2의 라인 6-17에 개시된 바와 같이, 전송된 부분 라인은 라인 버퍼에 저장되거나
Figure 112018037607118-pat00086
에 따라 폐기된다.
도 10은
Figure 112018037607118-pat00087
가 4인 경우, DP를 위한 이 실시예에 따른 메모리 제어 장치(100)의 읽기 동작을 보여준다. 메모리 읽기 요청
Figure 112018037607118-pat00088
은 주 메모리가 8개의 전송을 생성하게 한다. 전송 0과 1은 부분 라인 [0, 0], 전송 2와 3은 부분 라인 [1, 0], 전송 4와 5는 부분 라인 [2, 0], 전송 6과 7은 부분 라인 [3, 0]을 포함한다. 따라서, 전송 0 및 1은 라인 버퍼 0에 저장되고, 전송 2 및 3은 라인 버퍼 1에 저장되고, 전송 4 및 5는 라인 버퍼 2에 저장되며, 전송 6 및 7은 라인 버퍼 3에 저장된다. 유사하게, 제2 읽기 요청
Figure 112018037607118-pat00089
에 의한 다음 부분 라인 [0, 1], [1, 1], [2, 1] 및 [3, 1]에 대한 전송은 라인 버퍼 0, 1, 2, 3에 각각 저장된다.
Figure 112018037607118-pat00090
Figure 112018037607118-pat00091
/m보다 작으면, 메모리 제어 장치(100)는 메모리 대역폭을 부분적으로 이용할 수 있다. 그러나 대부분의 DP에는 4개 이상의 라인 버퍼가 있다.
대부분의 VP 및 GPGPU는 주 메모리에서 영상을 기록할 뿐만 아니라, 블록 단위로 영상을 읽는다. 그러나 영상 예측 및 컨볼루션(convolution)을 위해 읽혀지는 블록은 저장된 블록과 정렬되지 않을 수 있다. 예를 들어, 그림 5(a)의 블록 A는 4개의 블록에 걸쳐 있으므로 저장된 모든 블록과 정렬되지 않는다.
정렬되지 않은 블록의 각 부분 라인은 주 메모리의 액세스 경계를 가로 질러 위치하지 않으면, 즉 (
Figure 112018037607118-pat00092
-
Figure 112018037607118-pat00093
%(
Figure 112018037607118-pat00094
))는 m보다 크거나 같으면, 단일 읽기 요청을 통해 종래의 메모리 제어 장치에 의해 액세스 될 수 있다. 그런 다음, 기존 메모리 제어 장치는 주 메모리에서 (
Figure 112018037607118-pat00095
)-byte의 데이터를 수신하고, m-byte 데이터를 VP 및 GPGPU로 전달하고, (
Figure 112018037607118-pat00096
)-byte의 데이터를 삭제한다. 또한, 각 부분 라인은 주 메모리의 액세스 경계를 가로 질러 위치하는 경우, 즉 (
Figure 112018037607118-pat00097
-
Figure 112018037607118-pat00098
%(
Figure 112018037607118-pat00099
))가 m보다 작은 경우, 두 개의 읽기 요청을 통해 액세스해야 한다. 종래의 메모리 제어 장치는 메인 메모리로부터 (
Figure 112018037607118-pat00100
)-byte의 데이터를 수신하고, m-byte 데이터를 비디오 프로세서로 전달하며, (
Figure 112018037607118-pat00101
-m)-byte의 데이터를 폐기한다.
도 11을 참조하면, 이 실시예의 메모리 제어 장치(100)는 고유한 픽셀-영상(pixel-to-image) 매핑 기술에 의해 종래의 메모리 제어 장치와 동일한 방식으로 블록을 읽지 않는다. 알고리즘 3은 블록 읽기 요청이 이 실시예의 메모리 제어 장치(100)에 의해 처리되는 방법을 보여준다. 먼저, 알고리즘 3의 라인 2-5에 개시된 바와 같이, 매핑부(140)는 2차원의 m*n 블록 읽기 요청을 n 읽기 요청으로 변환한다. 블록은 n 개의 연속적인 영상 라인들 내의 동일한 열 위치에 부분 라인들로 구성되기 때문에, 읽기 요청
Figure 112018037607118-pat00102
의 메모리 주소
Figure 112018037607118-pat00103
Figure 112018037607118-pat00104
이고, 여기서 i는 0, 1, ..., n-1 이다. 각 1차원 읽기 요청
Figure 112018037607118-pat00105
는 m-byte 데이터를 자체 메모리 주소
Figure 112018037607118-pat00106
에서 읽는다. 읽기된 블록(read block)이 저장된 블록과 정확히 일치하면, 이 실시예의 메모리 제어 장치(100)는 도 12(a)와 같이 단일 읽기 요청으로 블록의 여러 부분 라인을 함께 읽을 수 있다. 저장된 블록에 정렬된 16*16 블록을 읽으려면
Figure 112018037607118-pat00107
+
Figure 112018037607118-pat00108
+32 사이클이 소요된다. 이때, CL은 CAS 읽기 대기 시간이다. 그러나, 읽기된 블록이 저장된 블록과 수평으로 정렬되지 않은 경우, 이 실시예의 메모리 제어 장치(100)에 따른 매핑부(140)는 상기 읽기된 블록을 좌측(L) 및 우측(R) 부분 블록으로 분할한다. 알고리즘 3의 라인 2-5에 개시된 첫 번째 n개의 읽기 요청은 L 부분 블록을 읽는데 사용되며, 라인 6-11에 개시된 두 번째 n개의 읽기 요청은 R 부분 블록을 읽는데 사용된다. 다음으로, 알고리즘 3의 라인 12-14에 개시된 바와 같이, 각 메모리 요구
Figure 112018037607118-pat00109
의 열(Column), 뱅크, 행(row), 랭크 및 채널 주소가 메모리 주소
Figure 112018037607118-pat00110
로부터 선택된다.
각 1차원 읽기 요청이 m-byte 미만의 데이터를 읽도록 요구하더라도 주 메모리는 (
Figure 112018037607118-pat00111
)-byte의 데이터를 출력한다. 부가적으로, 이 실시예의 메모리 제어 장치(100)는 알고리즘 3의 15-35 행에 개시된 바와 같이, 단일 읽기 요청에 의해 실행되는 다수의 1차원 메모리 요청을 실행한다.
도 12(a)에서, 메모리 읽기 요청
Figure 112018037607118-pat00112
에 대한 읽기 요청은
Figure 112018037607118-pat00113
부터
Figure 112018037607118-pat00114
+0x3f까지 64-byte 데이터를 읽지만, 메모리 읽기 요청
Figure 112018037607118-pat00115
Figure 112018037607118-pat00116
로부터 단지 16-byte 데이터를 요구한다. 반대로 메모리 읽기 요청
Figure 112018037607118-pat00117
,
Figure 112018037607118-pat00118
Figure 112018037607118-pat00119
Figure 112018037607118-pat00120
+0x10,
Figure 112018037607118-pat00121
+0x20 및
Figure 112018037607118-pat00122
+0x30에서 각각 16-byte 데이터를 요구한다. 따라서, 메모리 읽기 요청
Figure 112018037607118-pat00123
,
Figure 112018037607118-pat00124
,
Figure 112018037607118-pat00125
Figure 112018037607118-pat00126
은 메모리 요구
Figure 112018037607118-pat00127
에 대한 쓰기 요청에 의해 실행될 수 있다. 유사하게, 메모리 읽기 요청
Figure 112018037607118-pat00128
,
Figure 112018037607118-pat00129
,
Figure 112018037607118-pat00130
Figure 112018037607118-pat00131
은 병합 될 수 있고, 메모리 요청
Figure 112018037607118-pat00132
에 대한 쓰기 요청에 의해 실행될 수 있다.
읽기된 블록이 저장된 블록과 수직 정렬되지 않으면, 이 실시예의 메모리 제어 장치(100)에 따른 매핑부(140)는 블록을 상위 및 하위 부분 블록으로 나눈다. 또한, 읽기된 블록이 저장된 블록과 수평 및 수직으로 정렬되지 않은 경우, 이 실시예의 메모리 제어 장치(100)에 따른 매핑부(140)는 읽기된 블록을 4 개의 부분 블록으로 나눈다. 그런 다음 각 부분 블록을 독립적으로 읽는다. 도 6(a)에서, 블록 A는 상부 좌측(UL), 상부 우측(UR), 하부 좌측(LL) 및 하부 우측(LR) 부분 블록으로 분할되고, 부분 블록을 읽는 메모리 요청은 개별적으로 생성된다. 부분 블록에 대한 메모리의 요청은 행-버퍼 히트 조건 하에서 병합되고 액세스 될 수 있다. 또한, UL 및 UR 부분 블록에 대한 메모리 요청은 행-버퍼 히트 조건을 가지며, LL 및 LR 부분 블록을 읽는 메모리 요청은 행-버퍼 히트(row-buffer hit) 조건을 가질 가능성이 높다. 따라서 메모리 요청은 UL, UR, LL 및 LR 순서로 제공된다. 도 12(b)는 도 6(a)의 블록 A를 읽는 읽기 동작을 나타낸다. 저장된 블록과 수평 및 수직으로 정렬되지 않은 16*16 블록을 읽으려면
Figure 112018037607118-pat00133
+
Figure 112018037607118-pat00134
+80 사이클이 필요하다.
위에서 설명된 영상 프레임 버퍼는 영상이 MLC MTJ의 소프트도메인으로 구성된 영상 프레임 버퍼에 기록되고, 다음 영상이 MLC MTJ의 하드도메인으로 구성된 영상 프레임 버퍼에 기록되면 이 실시예만의 이점이 저감될 수 있다. 하드도메인의 전류가 소프트도메인에 영향을 미치기 때문이다. 또한, 소프트도메인으로 구성된 영상 프레임 버퍼의 영상이 하드도메인으로 구성된 영상 프레임 버퍼의 영상보다 더 자주 읽히는 경우, 영상 프레임 버퍼가 낮은 성능과 높은 전력 소모를 보일 수 있다. 이는, 하드도메인의 영상을 읽은 후에 소프트도메인으로 구성된 영상 프레임 버퍼의 영상을 읽을 수 있기 때문이다. 따라서, 이 실시예에 따른 영상 배치부(160)는 자화제어부(110)를 이용하여 영상에서 상시 참조되는 영상은 하드도메인으로 구성된 영상 프레임 버퍼에 기록되고, 상시 변경되는 영상은 주로 소프트도메인으로 구성된 영상 프레임 버퍼에 기록되게 한다. 상시 참조되는 영상은 I 픽처 및 P 픽처이고, 상시 변경되는 영상은 B 픽처가 될 수 있다.
H.264/AVC 및 H.265/HEVC와 같은 대부분의 비디오 코딩 알고리즘은 인트라-예측(intra-prediction) 및 인터-예측(inter-prediction) 알고리즘을 모두 사용한다. 인트라-예측 알고리즘에서 영상은 다른 영상과 독립적으로 코딩되지만, 인터-예측 알고리즘에서 영상은 전방 및 후방 영상으로부터 예측된다. 이러한 인터-예측 알고리즘은 캡쳐 및 디스플레이 순서와 다른 코딩 순서를 만들기 때문에, 대부분의 비디오 시스템은 영상을 재 정렬하기 위해 4개 이상의 영상 프레임 버퍼를 갖추고 있다. 인트라-예측된 영상이 소프트도메인으로 구성된 영상 프레임 버퍼에 저장되고, 인터-예측된 영상이 하드도메인으로 구성된 영상 프레임 버퍼에 저장되는 경우, 이 실시예의 이점은 저감될 수 있다.
I 프레임의 픽처는 일종의 키 프레임으로서, 영상 소스로부터 직접 압축됨에 따라 고화질 및 고용량의 특징을 가진다. P 프레임의 픽처는 I 픽처의 정보를 바탕으로 구성된 프레임으로, 일반적으로 화질 및 데이터 크기가 I 픽처보다 작다. B 프레임 픽처는 재생되는 순서상에서 전후에 존재하는 I 픽처 또는 P 픽처의 정보를 바탕으로 구성된 프레임으로, 일반적으로 화질 및 데이터 크기가 I 픽처 및 P 픽처보다 작다.
도 13은 이 실시예의 영상 프레임 버퍼에 대한 순차적 영상 대 버퍼(image-to-buffer) 할당 기술을 나타낸다. H0 및 H1은 하드도메인으로 구성된 영상 프레임 버퍼이고, S0 및 S1은 소프트도메인으로 구성된 영상 프레임 버퍼이다. H0 및 S0의 각 bit는 동일한 MLC MTJ에 있고, H1 및 S1의 bit는 동일한 MLC MTJ에 있다. 도 13(a)에서 첫 번째 영상은 I 픽처로 부호화되고, 뒤 따르는 영상들은 두 개의 B 픽처와 하나의 P 픽처로 반복 부호화된다. 영상이 전후에 I 또는 P 픽처를 가진 후에 B 픽처로 인코딩 될 수 있다. 도 13(b)에서 B 픽처로 인코딩 된 영상은 디코딩되는 즉시 디스플레이 된다. 그러나, I 또는 P 픽처로부터 디코딩 된 영상은 다음 I 또는 P 픽처가 디코딩 된 후에 디스플레이 될 수 있다.
도 13(a)에 있어서, 종래의 메모리 제어 장치에서 카메라에 의해 캡쳐 된 I0, B1, B2 및 P3 픽처는 OS 저항 상태 전이 프로세스(resistance state transition process)에 의해 순차적으로 영상 프레임 버퍼 H0, S0, H1 및 S1에 기록된다. 앞선 2개의 I 또는 P 픽처는 다른 픽처를 예측하는데 이용되기 때문에, 다음 I 또는 P 픽처가 캡처될 때까지 제거되지 않는다. 반면, 인코딩된 B 픽처는 더 이상 사용되지 않기 때문에 제거될 수 있다. 따라서, B4 픽처는 OS 저항 상태 전이 프로세스를 통해 영상 프레임 버퍼 S0에 기록된다. 다음으로, B5 및 P6 픽처가 각각 영상 프레임 버퍼 H1 및 H0 에 기록되지만, 영상 프레임 버퍼 S1 및 S0에 저장된 P3 및 B4 픽처가 손상 될 수 있다. P3 및 B4 픽처는 여전히 다른 픽처에 대해 참조되고 있거나, 아직 인코딩되지 않았으므로 복구되어야한다. 따라서, B5 및 P6 픽처는 TS 저항 상태 전이 프로세스를 통해 기록된다. 유사하게, B7 및 P9 픽처는 OS 저항 상태 전이 프로세스를 통해 각각 영상 프레임 버퍼 S0 및 S1에 기록되지만, B8 픽처는 TS 저항 상태 전이 프로세스를 통해 영상 프레임 버퍼 H1에 기록된다. P3 및 P9 픽처가 여러 번 참조 되더라도 영상 프레임 버퍼 S1에 기록된다. 따라서, TS 저항 상태 검출 프로세스(resistance state detection process)가 빈번하게 수행된다.
도 13(b)에서, 종래의 메모리 제어 장치에서 디코드 된 I0, P3, B1 및 B2 픽처는 OS 저항 상태 전이 프로세스를 통해 영상 프레임 버퍼 H0, S0, H1 및 S1에 순차적으로 기록된다. 최신 2 개의 I 또는 P 픽처는 다른 픽처에 대해 참조되기 때문에, 다음 I 또는 P 픽처가 디코딩 될 때까지 제거되지 않는다. 반대로 디스플레이된 B 픽처는 더 이상 사용되지 않으므로 제거할 수 있다. 따라서, P6 및 B4 픽처는 OS 저항 상태 전이 프로세스를 통해 각각 영상 프레임 버퍼 H1 및 S1에 기록된다. 다음 B5 픽처는 영상 프레임 버퍼 H0에 기록되지만 영상 프레임 버퍼 S0에 저장된 P3 픽처는 손상 될 수 있다. P3 픽처는 다른 픽처에서 계속 참조되므로 복구해야한다. 따라서, B5 픽처는 TS 저항 상태 전이 프로세스를 통해 기록된다. 유사하게, OS 저항 상태 전이 프로세스를 통해 각각 영상 프레임 버퍼 S1 및 S0에 P9 및 B8 픽처가 기록되지만 B7 픽처는 TS 저항 상태 전이 프로세스를 통해 영상 프레임 버퍼 H0에 기록된다. P3 및 P9 픽처가 여러 번 참조 되더라도 영상 프레임 버퍼 S0 및 S1에 기록된다. 따라서, TS 저항 상태 검출 프로세스가 종종 요구된다. 이러한 순차적 이미지 대 버퍼 할당 기술은 영상 프레임 버퍼에서 많은 TS 저항 상태 감지 및 전환 프로세스를 유발하기 때문에 이 실시예에 따른 접근법의 이점을 저감시킨다.
도 14는 실시예의 예측인지 이미지 대 버퍼 할당 기법을 나타낸다. 상기 기법의 핵심은 I 및 P 픽처가 하드도메인으로 구성된 영상 프레임 버퍼에 쓰여지고, B 픽처가 소프트도메인으로 구성된 영상 프레임 버퍼에 쓰여지는 것이다.
인코더의 실시예를 나타내는 도 14(a)에서, 캡쳐 된 I0, B1 및 B2 픽처는 OS 저항 상태 전이 프로세스를 통해 각각 영상 프레임 버퍼 H0, S0 및 S1에 기록된다. 다음 P3 픽처는 영상 프레임 버퍼 H1에 기록되지만 영상 프레임 버퍼 S1에 저장된 B2 픽처는 손상 될 수 있다. B2 픽처는 아직 인코딩되지 않았기 때문에 복구되어야한다. 따라서, P3 픽처는 TS 저항 상태 전이 프로세스를 통해 기록된다. 이어서, B4 및 B5 픽처는 OS 저항 상태 전이 프로세스를 통해 영상 프레임 버퍼 S0 및 S1에 각각 저장된다. 다음의 P6 픽처는 TS 저항 상태 전이 프로세스를 통해 영상 프레임 버퍼 H0에 저장된다. 그 이유는 아직 인코딩되지 않은 B4 픽처를 복구해야하기 때문이다. 유사하게, B7 및 B8 픽처는 OS 저항 상태 전이 프로세스를 통해 각각 영상 프레임 버퍼 S0 및 S1에 저장되고, P9 픽처는 TS 저항 상태 전이 프로세스를 통해 영상 프레임 버퍼 H1에 저장된다. 이 실시예의 이미지 대 버퍼 할당 기술은 순차적 이미지 대 버퍼 할당 기술과 동일하게 3번 TS 저항 상태 전이 프로세스를 수행한다. 그러나, 상기 기법은 I 및 P 픽처가 하드도메인에 저장되기 때문에 다른 픽처를 예측하기 위한 TS 저항 상태 검출 프로세스를 수행할 필요가 없다.
디코더의 실시예를 나타내는 도 14(b)에서, OS의 저항 상태 전이 프로세스에 의해, 복호화 된 I0, P3, B1, B2의 픽처가 각각 영상 프레임 버퍼 H0, H1, S0, S1에 기입된다. 그 후, P6, B4, B5, P9, B7 및 B8 픽처는 OS 저항 상태 전이 프로세스를 통해 각각 영상 프레임 버퍼 H0, S1, S0, H1, S0 및 S1에 기록된다. 모든 I 및 P 픽처는 하드도메인으로 구성된 영상 프레임 버퍼에 기록되고, 모든 B 픽처는 디코딩되어 소프트도메인으로 구성된 영상 프레임 버퍼에 저장되는 즉시 디스플레이 된다. 따라서 모든 픽처를 복구 할 필요가 없다. 또한, 하드도메인들로 구성된 영상 프레임 버퍼에 저장된 모든 I 및 P 픽처들은 OS 저항 상태 검출 프로세스를 통해 참조될 수 있다. 이 실시예의 이미지 대 버퍼(image-to-buffer) 할당 기법은 TS 저항 상태 검출 및 전이 과정을 필요로 하지 않으므로 MLC STT-MRAM(20)의 성능, 전력 소모 및 내구성을 크게 향상시킬 수 있다.
도 15를 참조하면, 본 발명은 다른 실시예로서 모니터 장치(10)가 될 수 있다. 모니터 장치(10)는 MTJ가 직렬 또는 병렬로 배치된 MLC STT-MRAM(20)과, MLC STT-MRAM(20)과 연결되는 메모리 제어 장치(100)와, MLC STT-MRAM(20)의 영상 프레임 버퍼에 저장된 데이터에 따라 영상이 표시되는 디스플레이 프로세서(200)를 포함한다. 모니터 장치(10)에는 컴퓨터 장치에 연결하는 컴퓨터용 모니터뿐만 아니라, 영상을 표시하는 기능을 가지는 TV, 휴대전화의 디스플레이, 빔프로젝터 등이 포함된다.
한편, 본 발명의 일 실시예에 따른 MLC STT-MRAM(20)에 영상을 저장하는 메모리 제어 방법은 매핑부(140)가 MLC STT-MRAM(20)의 MTJ에 전류를 공급하는 것으로 자유층의 하드도메인 또는 소프트도메인의 자화 방향을 제어하는 자화제어부(110)를 이용하여 블록 내의 모든 영상 픽셀을 영상 프레임 버퍼의 단일 행에 매핑시키는 단계를 포함하는 것을 특징으로 한다.
또한, 매핑부(140)는 행-버퍼 히트(row-buffer hit) 조건 하에서 액세스된 블록 내의 모든 부분 라인(partial-line)을 생성하는 것을 특징으로 할 수 있다.
또한, 매핑부(140)는 2차원의 블록 쓰기 요청을 1차원의 블록 쓰기 요청으로 변환하는 것을 특징으로 할 수 있다.
또한, 상기 블록은 n개의 연속 영상 라인 내의 동일한 열 위치에 있는 부분 라인으로 구성되는 것을 특징으로 할 수 있다.
또한, 매핑부(140)는 2차원의 블록 읽기 요청을 1차원의 블록 읽기 요청으로 변환하는 것을 특징으로 할 수 있다.
또한, 매핑부(140)는 읽기된 블록이 저장된 블록과 수평 정렬되지 않을 경우, 읽기된 블록을 좌측 및 우측 부분 블록으로 분할하여 읽는 것을 특징으로 할 수 있다.
또한, 매핑부(140)는 읽기된 블록이 저장된 블록과 수직 정렬되지 않을 경우, 읽기된 블록을 상위 및 하위 부분 블록으로 분할하여 읽는 것을 특징으로 할 수 있다.
또한, 매핑부(140)는 읽기된 블록이 저장된 블록과 수평 및 수직 정렬되지 않을 경우, 읽기된 블록을 상부 좌측, 상부 우측, 하부 좌측 및 하부 우측 부분 블록으로 분할하여 읽는 것을 특징으로 할 수 있다.
또한, 매핑부(140)가 자화제어부(110)를 이용하여 블록 내의 모든 영상 픽셀을 영상 프레임 버퍼의 단일 행에 매핑시키는 단계는, 영상 배치부(160)가 자화제어부(110)를 이용하여 상시 참조되는 영상은 상기 하드도메인에 기록되고, 상시 변경되는 영상은 상기 소프트도메인에 기록되게 하는 단계를 포함하는 것을 특징으로 할 수 있다.
또한, 상기 상시 참조되는 영상은 I 픽처 및 P 픽처이고, 상기 상시 변경되는 영상은 B 픽처인 것을 특징으로 할 수 있다.
또한, 상기 B 픽처는 디코딩되어 상기 소프트도메인으로 구성된 영상 프레임 버퍼에 저장되고, 디스플레이 프로세서에서 표시되는 것을 특징으로 할 수 있다.
[실험 결과]
인텔 사이클론 필드 프로그래머블 게이트 어레이(Intel Cyclone field programmable gate array)의 시뮬레이션을 통해 커넥티드 자동차 모델에서 이 기술을 평가한다. 이 모델에서 자가 운전 차량은 좌측, 중앙 및 우측 카메라로 30Hz 속도로 3 개의 UHD 4K 영상을 캡처하고 처리하여 GPGPU에서 조향 명령을 생성한다. 또한, 중앙 카메라에서 캡처된 비디오는 DP로 표시되고, VP에 의해 H.265/HEVC 표준을 통해 인코딩되어 데이터 센터로 전달된다. VP에는 비디오 당 4 개의 영상 프레임 버퍼가 있고, GPGPU에는 심층 학습을 위한 인공 신경망(5 개의 컨볼루션 레이어, 하나의 정규화 레이어 및 3 개의 완전 연결 레이어로 구성)이 있고, DP에는 비디오 당 4 개의 라인 버퍼가 있다고 가정한다. 첫 번째 이미지는 I 픽처로 인코딩되고 다음 이미지는 P, B 및 B 픽처로 반복 인코딩된다. 데이터 센터에서 VP는 비디오 비트 스트림을 이미지로 디코딩하고, GPGPU는 이미지 인식 및 분류를 위해 디코딩된 이미지를 처리한다. VP는 비디오 마다 4 개의 영상 프레임 버퍼를 가지고 있으며, GPGPU는 딥러닝(deep learning)을 위해 컨벌루션 뉴럴 네트워크(5 개의 컨볼루션 레이어, 1개의 최대 폴링 레이어, 3개의 완전 연결된 레이어로 구성)를 가지고 있다고 가정한다.
이러한 VP, DP 및 GPGPU를 위한 메모리 요청 생성기는 베릴로그(Verilog) 하드웨어 설명 언어(HDL, hardware description language)로 구현된 다음, 개방 코어 프로토콜(OCP, open core protocol)을 사용하는 온-칩 상호 연결 네트워크(on-chip interconnection network)를 통해 메모리 제어 장치(100)에 상호 연결된다.
또한, 8개의 8GB MLC STT-MRAM(20)과, 8개의 뱅크(Verilog HDL)로 구성된 메인 메모리를 모델링한다. 병렬 MLC MTJ의 액세스 대기 시간 및 전력 소비는 보고된 결과에 따라 CACTI에서 생성된다. 실험에 사용된 주요 시뮬레이션 파라미터는 [표 1]과 같다.
MLC STT-MRAM 동작 Latency
(cycles)
동적
에너지
(64B) (nJ)
누출 전력
(W)
하드도메인에서 읽기 3 0.34 0.152
두 도메인 모두에서 읽기 5 0.38
소프트 도메인 복구 없이 하드도메인에 쓰기 18 1.45
소프트도메인에 쓰기 19 1.28
두 도메인 모두 쓰기 37 1.58
하드도메인에 쓰기 후 소프트도메인 복구 42 1.93
MLC STT-MRAM에 영상을 저장하기 위한 이 실시예의 메모리 제어 장치(100)는 단계별로 세 가지 기술로 구현된다. BUF라고 불리는 첫 번째 메모리 제어 장치는 MLC-인식 영상 프레임 버퍼만 갖추고 있고, BUF+MAP이라는 두 번째 메모리 제어 장치는 BUF에서 블록 인식 픽셀 대 메모리(block-aware pixel-to-memory) 매핑 기술을 갖추고 있으며, BUF+MAP+ALL이라 불리는 마지막 메모리 제어 장치는 BUF+MAP에 예측인지(prediction-aware) 이미지 대 버퍼(image-to-buffer)를 할당하는 기술을 갖추고 있다. 이들은 DM_w_2OS 및 DM_w_SR이라고 하는 두 개의 일반적인 메모리 제어 장치와 비교된다. DM_w_2OS는 MLC MTJ의 현재 저항 상태에 관계없이 직접 픽셀-메모리(pixel-to-memory) 매핑 기술 하에서 MLC MTJ에 데이터를 쓸 때 항상 두 가지 OS 저항 상태 전이 프로세스를 수행한다. DM_w_SR은 TS 저항 상태 검출 프로세스를 수행 한 후, MLC MTJ의 전류 및 목표 저항 상태에 따라 ZS, OS 및 TS 저항 상태 전이 프로세스 중 하나를 수행한다.
도 16은 자가 운전 차량과 데이터 센터 애플리케이션의 실행 시간의 비교를 나타낸다. 5 개의 메모리 제어 장치의 애플리케이션 실행 시간은 33ms 간격으로 표시된다. DM_w_2OS는 두 응용 프로그램에서 DM_w_SR보다 약간 짧은 응용 프로그램 실행 시간을 얻는다. BUF, BUF+MAP 및 BUF+MAP+ALL은 각각 자체 구동 응용 프로그램에서 DM_w_2OS보다 평균 9.6%, 17.3% 및 18.7%의 응용프로그램 실행 시간을 단축한다. 또한, 데이터 센터 애플리케이션에서 BUF, BUF+MAP 및 BUF+MAP+ALL은 DM_w_2OS보다 각각 평균 12.5%, 28.5% 및 30.3%의 응용프로그램 실행 시간을 단축한다. 이 실시예의 메모리 제어 장치(100)는 데이터 센터 응용 프로그램이 더 많은 블록 기반 쓰기 메모리 서비스를 요구하기 때문에 자가 운전 차량 응용프로그램보다 데이터 센터 응용 프로그램의 성능이 향상되었다. 특히, MLC 인식 영상 프레임 버퍼 구조 및 블록 인식 픽셀 대 메모리(pixel-to-memory) 매핑 기술은 애플리케이션 실행 시간을 크게 단축한다.
도 17은 상기 5개의 메모리 제어 장치의 전력 소비를 비교한 것이다. 애플리케이션 실행 시간 비교와 달리 DM_w_SR은 두 애플리케이션에서 DM_w_2OS보다 훨씬 적은 전력을 소비한다. BUF, BUF+MAP 및 BUF+MAP+ALL은 자가 운전 차량 애플리케이션에서 DM_w_SR보다 각각 평균 11.4%, 94.2% 및 94.9% 낮은 전력을 소모한다. 그러나 BUF는 평균 82.2%의 전력을 데이터 센터 애플리케이션의 DM_w_SR보다 많이 소비한다. 그 이유는 BUF가 때때로 소프트도메인으로 구성된 영상 프레임 버퍼의 복구를 수행하지만, DM_w_SR은 현재 및 대상 저항 상태의 비교로 인해 소프트도메인 복구를 수행하지 않기 때문이다. 그러나 BUF+MAP 및 BUF+MAP+ALL은 데이터 센터 응용 프로그램에서 DM_w_SR보다 각각 평균 88.6%, 88.7% 낮은 전력을 소비한다. 블록 인식 픽셀 대 메모리(pixel-to-memory) 매핑 기술은 블록의 모든 픽셀이 단일 행의 MLC STT-MRAM(20)에 저장되므로 블록에 대해 여러 가지 활성화 및 비활성화 작업이 필요하지 않기 때문에 전력 소비를 획기적으로 향상시킨다.
또한, MLC STT-MRAM(20)의 수명이 크게 연장될 수 있다. 그 이유는 비활성화 동작으로 인한 다단계 저항 상태 전이 프로세스가 93.8% 감소하므로 하드도메인을 스위칭하는데 필요한 높은 전류가 MLC MTJ에 덜 적용되기 때문이다.
MLC STT-MRAM(20)은 저장 용량의 이점으로 인해 범용 컴퓨터 시스템뿐만 아니라 다양한 영상 시스템에도 널리 사용된다. 그러나, 복잡한 저항 상태 전이 및 검출 프로세스는 특히 최신 스마트 영상 어플리케이션에서 성능 및 전력 소모가 심각하게 나타날 수 있다.
본 발명의 일 실시예에 따른 MLC-인식 영상 프레임 버퍼 구조는, 블록 인식 픽셀 대 메모리(block-aware pixel-to-memory) 매핑과, 예측 인식 이미지 대 버퍼(prediction-aware image-to-buffer) 할당 기술은 2단계 저항 상태 전이 및 탐지 프로세스를 덜 필요로 한다.
실험 결과, 기존의 방법에 비해 메모리 성능을 크게 향상시키고 메모리 사용량을 줄이는 효과를 나타냈다. 본 발명의 일 실시예에 따른 메모리 제어 장치(100)는 인공 지능 영상 애플리케이션의 성능을 더욱 향상시킬 수 있는 기회를 제공한다.
이상에서 본 발명의 바람직한 실시예를 설명하였으나, 본 발명은 다양한 변화와 변경 및 균등물을 사용할 수 있다. 본 발명은 상기 실시예를 적절히 변형하여 동일하게 응용할 수 있음이 명확하다. 따라서 상기 기재 내용은 아래 특허청구범위의 한계에 의해 정해지는 본 발명의 범위를 한정하는 것이 아니다.
10 : 모니터 장치 20 : MLC STT-MRAM
100 : 메모리 제어 장치 110 : 자화제어부
120 : 판독부 140 : 매핑부
160 : 영상 배치부 200 : 디스플레이 프로세서

Claims (24)

  1. MLC STT-MRAM에서 MTJ의 하드도메인 또는 소프트도메인으로만 영상 프레임 버퍼를 구성하고,
    상기 MLC STT-MRAM의 MTJ에 전류를 공급하는 것으로 자유층의 상기 하드도메인 또는 상기 소프트도메인의 자화 방향을 제어하는 자화제어부와; 상기 자화제어부를 이용하여 블록 내의 모든 영상 픽셀을 영상 프레임 버퍼의 단일 행에 매핑시키는 매핑부를 포함하는 것을 특징으로 하는 메모리 제어 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 매핑부는 행-버퍼 히트(row-buffer hit) 조건 하에서 액세스된 블록 내의 모든 부분 라인(partial-line)을 생성하는 것을 특징으로 하는 메모리 제어 장치.
  4. 제3항에 있어서,
    상기 매핑부는 2차원의 블록 쓰기 요청을 1차원의 블록 쓰기 요청으로 변환하는 것을 특징으로 하는 메모리 제어 장치.
  5. 제4항에 있어서,
    상기 블록은 n개의 연속 영상 라인 내의 동일한 열 위치에 있는 부분 라인으로 구성되는 것을 특징으로 하는 메모리 제어 장치.
  6. 제3항에 있어서,
    상기 매핑부는 2차원의 블록 읽기 요청을 1차원의 블록 읽기 요청으로 변환하는 것을 특징으로 하는 메모리 제어 장치.
  7. 제3항에 있어서,
    상기 매핑부는 읽기된 블록이 저장된 블록과 수평 정렬되지 않을 경우, 읽기된 블록을 좌측 및 우측 부분 블록으로 분할하여 읽는 것을 특징으로 하는 메모리 제어 장치.
  8. 제3항에 있어서,
    상기 매핑부는 읽기된 블록이 저장된 블록과 수직 정렬되지 않을 경우, 읽기된 블록을 상위 및 하위 부분 블록으로 분할하여 읽는 것을 특징으로 하는 메모리 제어 장치.
  9. 제3항에 있어서,
    상기 매핑부는 읽기된 블록이 저장된 블록과 수평 및 수직 정렬되지 않을 경우, 읽기된 블록을 상부 좌측, 상부 우측, 하부 좌측 및 하부 우측 부분 블록으로 분할하여 읽는 것을 특징으로 하는 메모리 제어 장치.
  10. 제1항에 있어서,
    상기 자화제어부를 이용하여 상시 참조되는 영상은 상기 하드도메인에 기록되고, 상시 변경되는 영상은 상기 소프트도메인에 기록되게 하는 영상 배치부를 더 포함하는 것을 특징으로 하는 메모리 제어 장치.
  11. 제10항에 있어서,
    상기 상시 참조되는 영상은 I 픽처 및 P 픽처이고, 상기 상시 변경되는 영상은 B 픽처인 것을 특징으로 하는 메모리 제어 장치.
  12. 제11항에 있어서,
    상기 I 픽처 및 상기 P 픽처는 디코딩되어 상기 하드도메인으로 구성된 영상 프레임 버퍼에 저장되고, 상기 B 픽처는 디코딩되어 상기 소프트도메인으로 구성된 영상 프레임 버퍼에 저장되는 것을 특징으로 하는 메모리 제어 장치.
  13. MTJ가 직렬 또는 병렬로 배치된 MLC STT-MRAM과;
    상기 MLC STT-MRAM과 연결되며, 제1항 및 제3항 내지 제12항 중 어느 한 항에 따른 메모리 제어 장치와;
    상기 MLC STT-MRAM의 영상 프레임 버퍼에 저장된 데이터에 따라 영상이 표시되는 디스플레이 프로세서를 포함하는 것을 특징으로 하는 모니터 장치.
  14. 매핑부가 MLC STT-MRAM의 MTJ에 전류를 공급하는 것으로 자유층의 하드도메인 또는 소프트도메인의 자화 방향을 제어하는 자화제어부를 이용하여 블록 내의 모든 영상 픽셀을 영상 프레임 버퍼의 단일 행에 매핑시키는 단계를 포함하고,
    상기 매핑부는 행-버퍼 히트(row-buffer hit) 조건 하에서 액세스된 블록 내의 모든 부분 라인(partial-line)을 생성하는 것을 특징으로 하는 메모리 제어 방법.
  15. 삭제
  16. 제14항에 있어서,
    상기 매핑부는 2차원의 블록 쓰기 요청을 1차원의 블록 쓰기 요청으로 변환하는 것을 특징으로 하는 메모리 제어 방법.
  17. 제16항에 있어서,
    상기 블록은 n개의 연속 영상 라인 내의 동일한 열 위치에 있는 부분 라인으로 구성되는 것을 특징으로 하는 메모리 제어 방법.
  18. 제14항에 있어서,
    상기 매핑부는 2차원의 블록 읽기 요청을 1차원의 블록 읽기 요청으로 변환하는 것을 특징으로 하는 메모리 제어 방법.
  19. 제14항에 있어서,
    상기 매핑부는 읽기된 블록이 저장된 블록과 수평 정렬되지 않을 경우, 읽기된 블록을 좌측 및 우측 부분 블록으로 분할하여 읽는 것을 특징으로 하는 메모리 제어 방법.
  20. 제14항에 있어서,
    상기 매핑부는 읽기된 블록이 저장된 블록과 수직 정렬되지 않을 경우, 읽기된 블록을 상위 및 하위 부분 블록으로 분할하여 읽는 것을 특징으로 하는 메모리 제어 방법.
  21. 제14항에 있어서,
    상기 매핑부는 읽기된 블록이 저장된 블록과 수평 및 수직 정렬되지 않을 경우, 읽기된 블록을 상부 좌측, 상부 우측, 하부 좌측 및 하부 우측 부분 블록으로 분할하여 읽는 것을 특징으로 하는 메모리 제어 방법.
  22. 제14항에 있어서, 상기 매핑부가 자화제어부를 이용하여 블록 내의 모든 영상 픽셀을 영상 프레임 버퍼의 단일 행에 매핑시키는 단계는,
    영상 배치부가 상기 자화제어부를 이용하여 상시 참조되는 영상은 상기 하드도메인에 기록되고, 상시 변경되는 영상은 상기 소프트도메인에 기록되게 하는 단계를 포함하는 것을 특징으로 하는 메모리 제어 방법.
  23. 제22항에 있어서,
    상기 상시 참조되는 영상은 I 픽처 및 P 픽처이고, 상기 상시 변경되는 영상은 B 픽처인 것을 특징으로 하는 메모리 제어 방법.
  24. 제23항에 있어서,
    상기 I 픽처 및 상기 P 픽처는 디코딩되어 상기 하드도메인으로 구성된 영상 프레임 버퍼에 저장되고, 상기 B 픽처는 디코딩되어 상기 소프트도메인으로 구성된 영상 프레임 버퍼에 저장되는 것을 특징으로 하는 메모리 제어 방법.
KR1020180043964A 2018-04-16 2018-04-16 Mlc stt-mram에 영상을 저장하는 메모리 제어 장치 및 방법 KR102105644B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180043964A KR102105644B1 (ko) 2018-04-16 2018-04-16 Mlc stt-mram에 영상을 저장하는 메모리 제어 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180043964A KR102105644B1 (ko) 2018-04-16 2018-04-16 Mlc stt-mram에 영상을 저장하는 메모리 제어 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20190120596A KR20190120596A (ko) 2019-10-24
KR102105644B1 true KR102105644B1 (ko) 2020-05-29

Family

ID=68423447

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180043964A KR102105644B1 (ko) 2018-04-16 2018-04-16 Mlc stt-mram에 영상을 저장하는 메모리 제어 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102105644B1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102007068B1 (ko) 2016-01-15 2019-08-05 한양대학교 산학협력단 Stt-mram을 포함하는 메모리 시스템 및 그 구축 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Wooyoung Jang,‘Multi-level cell STT-RAM controller for multimedia applications’, IET Electronics Letters, Vol.53, Issue 1, pages 12-14, Jan. 2017.*

Also Published As

Publication number Publication date
KR20190120596A (ko) 2019-10-24

Similar Documents

Publication Publication Date Title
US20170269865A1 (en) Apparatuses and methods for operations using compressed and decompressed data
WO2019041833A1 (zh) 一种用于深度神经网络的压缩装置
CN101527849B (zh) 集成视频解码器的存储系统
JPH10313459A (ja) ブロックを用いた動き補償によるビデオ信号の復号方法 及び装置
CN100579225C (zh) 图像数据的存取和解码方法及解码装置
CN110322904B (zh) 压缩图像信息读取控制方法及装置
JP2015534169A (ja) マルチメディアデータ処理のための方法及びシステム
US10048868B2 (en) Replacement of a block with a compressed block to increase capacity of a memory-side cache
US20210247720A1 (en) Data Distribution for Holographic Projection
KR20070029545A (ko) 반도체 기억 장치와 이것을 이용한 반도체 집적 회로시스템 및 반도체 기억 장치의 제어 방법
US8963809B1 (en) High performance caching for motion compensated video decoder
US20070092008A1 (en) Context-aware frame memory scheme for motion compensation in video decoding
WO2024140568A1 (zh) 图像处理方法、装置、电子设备及可读存储介质
Sharma et al. MPEG/H256 video encoder with 6T/8T hybrid memory architecture for high quality output at lower supply
KR20120066305A (ko) 비디오 움직임 예측 및 보상용 캐싱 장치 및 방법
Li et al. Reducing dram image data access energy consumption in video processing
KR102105644B1 (ko) Mlc stt-mram에 영상을 저장하는 메모리 제어 장치 및 방법
US8045021B2 (en) Memory organizational scheme and controller architecture for image and video processing
US7400683B2 (en) Device with virtual tilized image memory
US20040061704A1 (en) Memory access method for video decoding
US7420567B2 (en) Memory access method for video decoding
Jang MLC STT-MRAM-aware memory subsystem for smart image applications
US20130278775A1 (en) Multiple Stream Processing for Video Analytics and Encoding
TW201347520A (zh) 晶片內/晶片外記憶體管理
JP5261694B2 (ja) 画像処理用メモリ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant