KR20050110006A - 데이터 프로세싱 시스템의 메모리 관리 - Google Patents

데이터 프로세싱 시스템의 메모리 관리 Download PDF

Info

Publication number
KR20050110006A
KR20050110006A KR1020057017279A KR20057017279A KR20050110006A KR 20050110006 A KR20050110006 A KR 20050110006A KR 1020057017279 A KR1020057017279 A KR 1020057017279A KR 20057017279 A KR20057017279 A KR 20057017279A KR 20050110006 A KR20050110006 A KR 20050110006A
Authority
KR
South Korea
Prior art keywords
memory
address
access timing
memory access
processing system
Prior art date
Application number
KR1020057017279A
Other languages
English (en)
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 프리스케일 세미컨덕터, 인크.
Publication of KR20050110006A publication Critical patent/KR20050110006A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0692Multiconfiguration, e.g. local and global addressing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

데이터 프로세싱 시스템(10) 내의 메모리 관리는 메모리(18, 19, 34)의 타이밍 파라미터를 지정하기 위하여 하나 이상의 타이밍 비트들(54)을 이용함으로써 달성된다. 본 발명의 일부 실시예들에서 이것을 실시하기 위하여, 메모리 배열(32, 33, 42)은 프로세서(12)의 물리 메모리 맵(70)에서 다중 맵핑되며 다중 맵핑과 연관된 어드레스 비트들(54)은 메모리 배열(32, 33, 42)의 타이밍 파라미터들을 직접 제어하기 위하여 이용된다. 이것은 어떠한 추가적인 제어 기억 오버헤드를 요구하지 않고 액세스 단위로 유연한 타이밍 지정이 신속히 도출되도록 한다.

Description

데이터 프로세싱 시스템의 메모리 관리{MEMORY MANAGEMENT IN A DATA PROCESSING SYSTEM}
본 발명은 일반적으로는 데이터 프로세싱 시스템에 관한 것이며, 특히, 데이터 프로세싱 시스템 내의 메모리 관리에 관한 것이다.
데이터 프로세싱 시스템이, 일부가 상이한 타이밍 지정(timing specifications)을 가질 수 있는 다양한 메모리들을 포함하는 것은 통상적인 것이다. 이 메모리들의 일부는 전체 메모리 맵의 매우 작은 일부를 이용할 수 있다. 데이터 프로세싱 시스템이 실시간 애플리케이션 시스템에서 이용되면, 메모리로부터 획득된 값들이 더욱 용이하게 일시적으로 변경되는 것을 허용하기 위하여 용이하게 프로그램된 메모리(예를 들면, SRAM(static random access memory))의 작은 블럭들을 프로그램하기 더 어려운 메모리(예를 들면, 플래시 EEPROM(electrically erasable programmable read only memory) 또는 ROM(read only memory))의 일부 위에 전개(development)동안 일시적으로 오버레이시키는 것이 유용할 수 있다. 그 후 전개가 종료된 경우, 최종 실시간 시스템은 전개 동안 이용된 SRAM 대신에 프로그램하기 더 어려운 메모리를 이용할 것이다. 종종 상기 프로그램하기 더 어려운 메모리는 데이터 프로세싱 시스템의 다른 부분들과 동일한 집적회로 상에 형성되는 한편, 전개 동안 이용된 더욱 용이하게 프로그램된 메모리는 별도의 집적회로 상에 형성된다.
본 발명은 예시적으로 도시되는 것이고, 동일한 참조부호들이 유사한 구성요소들을 가리키는 첨부도면들에 의하여 제한되지 않으며,
도 1은 블럭도 형태로, 본 발명의 일 실시예에 따른 데이터 프로세싱 시스템(10)을 도시하고;
도 2는 블럭도 형태로, 본 발명의 일 실시예에 따른 메모리 어드레스(50)를 도시하고;
도 3은 블럭도 형태로, 본 발명의 일 실시예에 따른 메모리 맵(70)을 도시하며;
도 4는 블럭도 형태로, 본 발명의 일 실시예에 따른 MMU(memory management unit)(16)의 일 예를 도시한다.
당업자는 상기 도면들의 구성요소들은 단순 명료함을 위하여 도시되고 비례적으로 도시될 필요는 없다는 것을 이해한다. 예를 들면, 상기 도면들의 구성요소들중 일부의 치수는 본 발명의 실시예의 이해를 향상시키는 것을 돕기 위하여 다른 구성요소들에 비하여 확대될 수 있다.
실시간 시스템을 위한 소프트웨어 전개시, 시스템의 파라미터의 조정(tuning) 및 교정(calibration)을 보조하기 위하여 메모리의 일 영역으로부터 페치된 값들을 신속하고 용이하게 수정할 수 있을 것이 자주 요구된다. 실시간 시스템의 동작을 최적화하기 위하여 전개 동안 상이한 많은 파라미터들이 조절될 필요가 있을 수 있다. 많은 시스템들에서, 시스템의 전개가 종료되면, 조정 프로세스의 최종 결과들은 큰 비휘발성 메모리(종종 SoC(System on Chip)에 임베드됨)에 저장된 값들에 충실하게 될 것이다.
많은 경우에, 전개 동안 이용된 메모리(예를 들면, 오프칩(off-chip) SRAM)는 최종 실시간 시스템에서 이용된 메모리(예를 들면, 온칩 플래시 EEPROM, ROM)와는 상이한 타이밍 특성을 갖는다. 자동차 제어 시스템(automotive control system)과 같은, 일부 실시간 시스템의 경우, 최종 실시간 시스템에서의 실패 가능성을 줄이기 위하여 전개 동안 이용된 바와 같은 타이밍 특성을 최종 실시간 시스템이 갖도록 요구하는 것이 바람직할 수 있다. 이 요건은 메모리의 일부에 대한 액세스 시간이 전개 동안 이용된 액세스 시간과 매치하도록 의도적으로 늦추어지는 것을 요구하는 경우에도 이용될 수 있다. 일부 실시간 시스템들에서는, 신뢰성은 시스템 속도 성능보다 더 중요하다.
일부 데이터 프로세싱 시스템의 경우, 전개 동안 오버레이되는 메모리의 영역들은 메모리 맵을 통하여 분산될 수 있음을 주목한다. 결과적으로, 타이밍 지정(timing specifications)을 독립적으로 제어하는 것이 바람직할 수 있는 메모리 맵의 블럭들의 세분성(granularity)은 상당히 미세할 수 있다. 따라서, 메모리 타이밍 지정을 저장하기 위하여 제어 레지스터를 이용하는 것은 메모리의 분산된 영역들을 커버할 수 있는 과중하게 많은 수의 제어 레지스터들을 요구할 수 있다. 메모리의 많은 분산된 블럭들의 타이밍 특성을 독립적으로 지정하며 많은 수의 제어 레지스터들을 필요로 하지 않는 또 다른 접근이 필요하였다.
도 1을 참조하여, 일 실시예에서, 데이터 프로세싱 시스템(10)은 내부버스(22)에 의하여 양방향성으로 연결되는 프로세서(12), 메모리(18), 메모리(19), 다른 기능회로(20), 및 EBC(external bus controller, 24)를 포함한다. 내부버스(22)는 제어신호(26), 어드레스 신호(27), 및 데이터 신호(28)를 포함한다. 프로세서(12)는 프로세서(12)를 제어신호(26), 어드레스 신호(27), 및 데이터 신호(28)에 양방향성으로 연결시키는 BIC(bus interface controller, 13)를 포함한다. 메모리(18)는 메모리 어레이(32) 및 BIC(bus interface controller, 30)를 포함한다. BIC(30)는 메모리(18)를 제어신호(26), 어드레스 신호(27), 및 데이터 신호(28)에 양방향성으로 연결한다. 메모리(19)는 메모리 어레이(33) 및 BIC(bus interface controller, 31)를 포함한다. BIC(31)는 메모리(19)를 제어신호(26), 어드레스 신호(27), 및 데이터 신호(28)에 양방향성으로 연결한다. 다른 기능회로(20)는 제어신호(26), 어드레스 신호(27), 및 데이터 신호(28)에 양방향성으로 연결된다. EBC(External bus controller, 24)는 제어신호(26), 어드레스 신호(27), 및 데이터 신호(28)에 양방향성으로 연결된다. 본 발명의 상이한 실시예들에서, 프로세서(12), 메모리(18), 메모리(19), 다른 기능회로(20), 및 EBC(24)는 이 블럭들이 그들 각각의 기능들을 수행하도록 하는 내부버스(22)의 임의의 원하는 부분들에 연결될 수 있음을 주목한다. 따라서 일부 실시예들에서, 블럭(12, 18-20, 및 24) 모두가 내부버스(22)의 신호들 모두에 연결될 필요가 있는 것은 아니다. 또한 본 발명의 일부 실시예들의 경우, 제어신호(26 및 36)의 일부 이상이 상태 정보를 전달하도록 이용될 수 있음을 주목한다.
프로세서(12)는 어드레스 생성회로(14)를 포함한다. 프로세서(12)의 일부 실시예들은 메모리 관리 유니트(16)를 포함할 수 있다. 메모리 관리 유니트(16)는 어드레스 변환 테이블(address translation table, 9)을 포함할 수 있다. 그러나, 메모리 관리 유니트(16)는 선택적이며 어드레스 변환 테이블(9)은 데이터 프로세싱 시스템(10)에서 적절한 어느 곳에라도 위치될 수 있거나, 또는 그 자체가 선택적일 수 있다. 다른 기능회로(20)는 임의의 원하는 기능을 수행할 수 있다. 다른 기능회로(20)에 의하여 수행될 수 있는 기능들의 일부 예들은 타이머, 입력/출력 포트, 통신포트(예를 들면, 시리얼 통신포트, 시리얼 주변 인터페이스, 등), 드라이버(예를 들면, LCD 드라이버), 아날로그 디지털 변환기, 디지털 아날로그 변환기, 부가 메모리, DMA 장치, 또는 다른 원하는 기능이다.
EBC(24)는 내부 버스(22)와 외부 버스(35)를 양방향성으로 연결하는데 이용된다. 집적회로(11)는 외부 버스(35)를 통하여 메모리(34)에 양방향성으로 연결된다. 외부 버스(35)는 제어신호(36), 어드레스 신호(37), 및 데이터 신호(38)를 포함한다. 메모리(34)는 메모리 배열(42) 및 BIC(40)를 포함한다. BIC(40)는 메모리(34)를 제어신호(36), 어드레스 신호(37), 및 데이터 신호(38)에 양방향성으로 연결한다. 본 발명의 대안의 실시예들에서, 메모리(34) 및 집적회로(11)는 상이한 집적회로들에서 실시된다. 본 발명의 또 다른 실시예에서, 데이터 프로세싱 시스템(10)의 다양한 부분들은 상이한 집적회로 또는 동일한 집적회로에서 실시된다.
데이터 프로세싱 시스템(10)이 메모리(18, 19, 및 34)를 구비하는 것으로 도시되었지만, 본 발명의 대안의 실시예들은 집적회로(11)에서 구현된 임의의 원하는 수의 메모리(예를 들면, 메모리(18 및 19)) 및 집적회로(11)에 외부적으로 구현되는 임의의 원하는 수의 메모리(예를 들면, 메모리(34))를 구비할 수 있다. 또한, 메모리(18), 메모리(19), 및 메모리(34)는: SRAM(static random access memory), DRAM(dynamic random access memory), ROM(read only memory), EPROM(erasable programmable read only memory), EEPROM(electrically erasable programmable read only memory), MRAM(magnetic random access memory), 등을 포함하는(그러나 이에 한정하는 것은 아님) 메모리의 임의의 형태일 수 있다. 메모리(18, 19, 및 34)는 동일, 또는 상이한 유형의 메모리일 수 있다.
도 2를 참조하여, 메모리 어드레스(50)는 데이터 프로세싱 시스템(10)에서 임의의 메모리(예를 들면, 18, 19, 34)를 액세스하는데 이용될 수 있다. 메모리 어드레스(50)는 프로세서(12) 내의 어드레스 생성회로(14)에 의하여 제공되거나, 다른 기능회로(20)를 포함하는, 데이터 프로세싱 시스템(10) 내의 어드레스 생성의 임의의 다른 소스에 의하여 제공될 수 있다. 메모리 어드레스(50)의 도시된 예에서, 하위 N 비트[0-23]는 메모리 배열(32, 33, 또는 42)중 하나로 인덱스하기 위한 배열 인덱스 비트(52)로서 이용된다. 다음의 유효(significant) M 비트[24-28]는 메모리 배열(32, 33, 또는 42)중 하나의 타이밍 파라미터를 지정하기 위한 타이밍 비트(54)로서 이용된다.
메모리(18, 19, 및 34)가 상이한 하나 이상의 타이밍 파라미터들을 가지는 것은 통상적임을 주목한다. 일 예는 메모리를 액세스하는데 요구되는 대기 사이클(waits cycles) 또는 대기 상태(wait states)의 수이다. 본 발명의 일부 실시예들에서, 타이밍 비트(54)는, 1차 대기상태의 수(53)를 지정하는 파라미터[비트 26-28], 및 2차 대기상태의 수(55)를 지정하는 파라미터[비트 24-25]와 같은 복수의 타이밍 파라미터들을 포함한다. 1차 대기상태는 액세스들의 버스트에서의 초기 액세스의 대기상태를 의미한다. 2차 대기상태는 액세스들의 버스트에서의 하나 이상의 후속하는 액세스들에 대한 대기상태들을 의미한다. 버스트 액세스들이 버스트 전달의 상이한 부분들에 대하여 상이한 타이밍 파라미터들을 요구하는 것은 통상적인 것이다. 본 발명의 대안의 실시예들은 데이터 프로세싱 시스템(10) 내의 메모리의 임의의 타이밍 파라미터를 지정하기 위하여 타이밍 비트(54)를 이용할 수 있다. 또한, 본 발명의 대안의 실시예들은 액세스되는 회로의 하나 이상의 비타이밍(non-timing) 파라미터 또는 속성을 지정하기 위하여 액세스 어드레스의 일부(예를 들면, 비트(54))를 이용할 수 있는 것을 주목한다. 도 2에 도시된 메모리 어드레스(50)에서, 메모리 배열(32, 33, 또는 42)중 하나를 선택하기 위하여 장치선택 비트(56)로서 최대 유효(most significant) L 비트[29-31]가 이용된다. 본 발명의 대안의 실시예들은 메모리 어드레스(50)를 더 적은, 더 많은, 또는 상이한 파티션들로 분할할 수 있고, 각각의 파티션 내의 비트들의 수도 변화할 수 있음을 주목한다.
도 2의 메모리 어드레스(50)는 이제 장치들 또는 한 장치내의 기억 위치들을 구별하기 위하여 이용되지 않는 일 부분(타이밍 비트(54))을 갖는 것을 주목한다. 이 비트들(타이밍 비트들(54))은 대신 장치선택 비트(56)에 의하여 선택된 장치의 타이밍 특성을 지정하는데 이용된다. 본 발명의 일부 실시예들에서 이것을 실시하기 위하여, 메모리 배열(예를 들면, 32, 33, 42)은 프로세서(12)의 물리적 메모리 맵(70)내에서 다중-맵핑되고(multiple-mapped)(도 1 및 3 참조) 요구된 제어 레지스터에 대한 간접 액세스 없이 메모리 배열(예를 들면, 32, 33, 42)의 타이밍 파라미터들을 직접 제어하기 위하여 다중 맵핑과 연관된 어드레스 비트(54)가 이용된다. 이것은 어떠한 추가적인 제어 기억 오버헤드도 요구하지 않고 액세스 단위로 도출되는 유연한 타이밍 지정(flexible timing specification)을 허용한다.
본 발명의 일부 실시예들은 전형적인 데이터 프로세싱 시스템(10)의 어드레스 공간이 부족한 사실을 이용하므로, 다중 맵핑이 이용될 수 있고 액세스를 위하여 이용된 메모리 어드레스(50)의 일부(예를 들면, 타이밍 비트(54))는 타이밍 지정자(timing specifier)로서의 이용을 위하여 고쳐질 수 있다. 메모리의 다중 맵핑에 의하여, 어드레스(50)의 다수의 상이한 값들이 이용되어 메모리 내의 동일한 위치를 선택할 수 있다. 타이밍 비트들(54)이 상이하지만, 장치선택 비트(56)의 값들이 공통이고, 배열 인덱스 비트(52)가 공통인 어드레스(50)에 대한 특정 값들의 선택은, 메모리 내의 동일한 위치에 대한 액세스를 야기시키지만, 타이밍 비트(54)에 대응하는 하나 이상의 타이밍 파라미터들의 상이한 세트를 이용한다. 데이터 프로세싱 시스템(10)의 유저는 그 후 메모리 어드레스(50)의 적절한 값들을 생성함으로써 메모리 배열 내의 실제 데이터 위치와 무관하게 타이밍 속성들의 원하는 세트를 선택하기 위하여 타이밍 비트(54)를 직접 제어할 수 있다.
또한, 본 발명은 시스템 조건들(예를 들면, 동작 클럭 주파수)이 변화함에 따라 메모리 타이밍 파라미터들의 지정이 더욱 효율적으로 변경되도록 한다. 본 발명은 시스템 조건이 변화되는 경우 각각의 메모리(18, 19, 34)에 대한 개별 버스 인터페이스 제어기(30, 31, 40)가 재프로그램되도록 요구하지 않는다. 대신, 메모리 어드레스(50) 자체의 타이밍 비트(54)는 데이터 프로세싱 시스템(10)의 유저에 의하여 수정되어야 하는 유일한 것이다. 따라서, 본 발명은 저전력 시스템 동작을 위하여 의존되는 상이한 클럭킹 모드로의 더욱 빠른 전이를 허용한다. 저전력 시스템 효율은 그렇게 하여 개선되며, 그 이유는 저전력(저주파수) 모드로의 전이 및 그로부터의 전이는 더 낮은 소프트웨어 오버헤드로 수행될 수 있어서, 모드 변화가 실질적으로 이익이 되는 임계치를 낮추기 때문이다. 점점 더 많은 휴대용 배터리 동작 애플리케이션들에서 전자장치들이 이용됨에 따라, 배터리 전력소비를 감소시킬 수 있는 어떠한 개선도 중요하다.
도 3은 도 1의 메모리 배열(32)에 대한 메모리 맵(70)의 일 실시예를 도시한다. 도시된 실시예에서, 메모리 배열(32)은 N 배열 인덱스 비트(52)에 의하여 액세스된다(도 2 참조). 따라서, 메모리 배열(32)은 어드레스 위치 0 내지 2N-1을 갖는다. 메모리 배열(32)은 메모리 블럭(71, 72, 및 73)과 같이 다중 또는 복수회 메모리 맵(70)으로 맵핑될 수 있다. 도 2를 참조하여, 배열 인덱스 비트(52) 및 장치선택 비트(56)는 도 3의 각각의 블럭(71-73)에 대하여 동일하게 될 것이지만, 타이밍 비트들(54)은 블럭(71-73)의 각각에 대하여 상이하거나 동일할 수 있다. 예를 들면, 블럭(71)은 타이밍 비트(54)에 대하여 하나의 값(60)을 가지는 한편, 블럭(72)은 타이밍 비트(54)에 대하여 하나의 값(62)을 가지며, 블럭(73)은 타이밍 비트(54)에 대하여 하나의 값(64)을 갖는다. 값(60, 62, 및 64)은 액세스 동안 메모리 배열(32)의 다중 맵핑중 어느 것이 이용되는지 결정한다. 또한, 메모리 배열(32)로 맵핑된 임의의 수의 블럭(71-73)이 존재할 수 있다. 예시된 실시예에서, 각각의 블럭(71-73)은 동일한 사이즈이지만, 각각의 블럭은 메모리 맵(70)내의 어드레스 위치들의 상이한 범위를 포함한다. 제1 블럭, 블럭(71)은 어드레스 위치 0에서 개시하며 어드레스 위치 2N-1에서 종료한다. 블럭(72) 및 모든 다른 개입 블럭들(도시하지 않음)은 크기가 각각 2N이다. 최후의 블럭, 블럭(73)은 크기가 2N이며 2N+M-1 마다의 어드레스 위치에서 종료하며, 여기에서 M은 타이밍 비트(54)를 위하여 이용된 비트수이다(도 2 참조).
특정한 예에서의 숫자들을 이용하여, 메모리(18)(도 1 참조)가 크기가 1 메가바이트(Mbyte)라면, 메모리 배열(32) 내에서 데이터의 한 바이트를 선택하기 위하여 20 어드레스 라인들(N=20)을 요구한다. 메모리 배열(32)을 4회 다중 맵핑하여 메모리 맵내에서 4 Mbyte 영역을 차지하는 것으로 보임으로써(따라서 메모리 배열(32)에 22 어드레스 라인들을 할당함), 이 두 여분의 비트들은 액세스 단위로 타이밍 파라미터를 지정하기 위한 타이밍 비트(54)로서 이용 가능하다. 메모리 배열(32) 내에 기억된 데이터를 선택하기 위하여, 타이밍 비트(54)로서, 이 두 여분의 비트들이 필요하지 않으며, 그 이유는 어드레스 앨리어싱(address aliasing)으로 인하여 데이터는 4개의 상이한 실제 카피들(virtual copies)로 보이기 때문이다. 대신, 이 두 상위 비트들은 메모리 배열(32) 내의 특정한 블럭(예를 들면, 71-73)에 적용되는 타이밍 파라미터(예를 들면, 액세스 시간)를 직접 가리키는데 이용된다. 본 발명의 일부 실시예들에서, 타이밍 비트(54)는 복수의 부분들로 분할될 수 있으며, 각각의 부분은 메모리 배열(32)의 상이한 타이밍 파라미터를 지정하는데 이용될 수 있다. 또한, 타이밍 비트(54)의 하나 이상의 부분들은 비타이밍 관련된 파라미터들을 지정할 수 있다.
도 4는 MMU(memory management unit, 16) 어드레스 변환(도 1 참조)의 일 예를 도시한다. MMU(16)는 선택적임을 주목한다. 도 4에서, 논리 어드레스 페이지(90)는 페이지(80), 페이지(82), 및 페이지(84)를 포함한다. 각각의 논리 어드레스 페이지(80, 82, 및 84)는 MMU(16)에 의하여 대응하는 물리 어드레스 페이지로 맵핑될 수 있음을 주목한다. 각각의 논리 페이지는 임의의 물리 페이지로 맵핑될 수 있으며, 물리 페이지 어드레스를 대응 논리 페이지 어드레스로 할당하는 경우 완전한 유연성을 제공한다. 도 4에 도시된 바와 같이, 물리 어드레스 페이지(92)는, 메모리 배열(32)로 다중 맵핑되는, "a", "b", "c", 및 "d"로 표시된 상이한 4 블럭들(예를 들면 도 3의 71-73과 같은 블럭들)에 대응한다. 타이밍 비트(54)에 대한 값(100)은 물리 어드레스 페이지(80a, 82a, 및 84a)에 적용한다. 타이밍 비트(54)에 대한 값(101)은 물리 어드레스 페이지(80b, 82b, 및 84b)에 적용한다. 그 후, 블럭(60, 61, 62, 및 64)은 물리 어드레스의 다음 블럭을 차지한다. 타이밍 비트(54)에 대한 값(102)은 물리 어드레스 페이지(80c, 82c, 및 84c)로 적용한다. 타이밍 비트(54)에 대한 값(103)은 물리 어드레스 페이지(80d, 82d, 및 84d)로 적용한다.
MMU(16)는 본 발명을 실시하도록 요구되지 않지만, 본 발명은 MMU(16)가 이용되는 경우에 실제로 이용될 수 있음을 주목한다. MMU를 이용하는 것의 한 가지 장점은 논리 어드레스들의 프로그램 수정이 없이, 도 1의 어드레스 변환 테이블(9)의 기존의 성능을 이용하여 타이밍 비트(54)에 대한 상이한 값을 선택하기 위하여 논리 페이지의 맵핑을 변화시키는 데 논리 대 물리 어드레스 매핑(logical to physical address mapping)이 이용될 수 있다는 것이다. 예를 들면, 도 4에서 논리 페이지(84)를 물리 페이지(84a)로 맵핑함으로써, 값(100)이 타이밍 비트(54)를 위하여 이용된다. 대안적으로, 타이밍의 상이한 선택이 필요한 경우, 논리 페이지(84)는 물리 페이지(84b)로 맵핑되어 타이밍 비트(54)를 위한 값(101)을 선택할 수 있다. 이 맵핑중 어느 것이 이용되는지와 무관하게, 메모리 배열(32) 내의 동일한 값이 액세스되는데, 그 이유는 메모리 배열(32)은 물리 어드레스 공간(물리 어드레스 페이지(92))내의 다중 위치들로 다중 맵핑되기 때문이며, 각각의 다중 맵핑은 타이밍 비트(54)에 대한 하나의 상이한 값에 대응한다.
본 발명의 대안의 실시예들은 타이밍 파라미터들을 제어하기 위하여 메모리 배열 이외의 구성요소들에 대하여 이 다중 맵핑 기술을 이용할 수 있음을 주목한다. 또한, 본 발명의 대안의 실시예들에서 다중 맵핑들과 연관된 타이밍 비트(54)는 데이터 프로세싱 시스템(10)의 하나 이상의 부분들의 동작 모드를 제어하거나, 데이터 프로세싱 시스템(10)의 하나 이상의 구성요소들로부터의 응답을 제어하는 것과 같은 다른 제어 목적들을 위하여 이용될 수 있다.
이전의 설명에서, 본 발명은 특정의 실시예들을 참조하여 기술되었다. 그러나, 당업자는 이하의 청구범위에서 설명된 바대로 본 발명의 범위를 벗어나지 않고 다양한 수정 및 변화가 이루어질 수 있음을 이해한다. 따라서, 상기 설명 및 도면은 제한적 의미라기보다는 예시적인 것으로 간주되며, 모든 그러한 수정들은 본 발명의 범위 내에 포함되는 것이다.
이점, 다른 장점, 및 문제에 대한 해결이 특정 실시예들에 관하여 전술되었다. 그러나, 임의의 이점, 장점, 또는 해결이 발생하거나 더욱 명백해지도록 할 수 있는 이점, 장점, 문제에 대한 해결, 및 임의의 구성요소(들)은 청구범위의 일부 또는 전부의 임계적, 필수적, 또는 본질적 특징 또는 구성요소인 것으로 해석되지 않는다. 여기에서 사용된 바와 같이, 용어 "포함하다", "포함하는", 또는 그것의 임의의 다른 수정은 비배타적인 포함을 커버하는 것이어서, 구성요소들의 리스트를 포함하는 프로세스, 방법, 제품, 또는 장치는 그 구성요소들만을 포함하는 것이 아니며 그러한 프로세스, 방법, 제품, 또는 장치에 내재적이거나 명백히 리스트되지 않는 다른 구성요소들을 포함할 수 있다.

Claims (10)

  1. 제1 메모리 액세스 타이밍 특성을 갖는 제1 메모리 및 제2 메모리 액세스 타이밍 특성을 갖는 제2 메모리를 포함하는 프로세싱 시스템에서 메모리 액세스 타이밍을 제어하는 방법으로서,
    상기 제1 메모리에 어드레스를 제공하는 단계; 및
    상기 제1 메모리 액세스 타이밍 특성을 상이한 메모리 액세스 타이밍 특성으로 수정하기 위하여 상기 어드레스의 일부를 직접 이용하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    미리 결정된 단일의 논리 어드레스를 복수의 물리 어드레스중 임의의 하나로 변환하여 어드레스 변환을 구현하는 단계-상기 복수의 물리 어드레스의 각각은 상기 제1 메모리를 위한 복수의 상이한 타이밍 특성들중 미리 결정된 하나를 포함함-를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 제1 메모리 액세스 타이밍 특성을 수정하는 데 이용되는 상기 어드레스의 일부를 상기 제1 메모리를 어드레스하는 데 요구되는 것 이상의 추가적인 어드레스 비트들로서 구현하는 단계-상기 추가적인 어드레스 비트의 전체 수는 얼마나 많은 액세스 타이밍 특성이 상기 상이한 메모리 액세스 타이밍 특성으로서 구현될 수 있는지를 결정함-를 더 포함하는 방법.
  4. 제1항에 있어서,
    상기 제1 메모리 액세스 타이밍 특성을 상기 제1 메모리의 복수의 분리된 블럭들의 각각에 대한 상이한 메모리 액세스 타이밍 특성으로 수정하는 단계를 더 포함하는 방법.
  5. 수신 장치에 어드레스를 제공하기 위한 버스 마스터를 포함하는 프로세싱 시스템에서 동작 파라미터를 제어하는 방법으로서,
    동작 파라미터 제어 정보로 상기 어드레스의 일부를 인코딩하는 단계;
    상기 어드레스를 상기 수신 장치로 통신하는 단계; 및
    상기 수신 장치의 동작 파라미터를 수정하기 위하여 상기 어드레스의 일부를 직접 이용하는 단계
    를 포함하는 방법.
  6. 제5항에 있어서,
    상기 수신장치를 메모리로서 구현하고 상기 메모리의 액세스 특성을 수정하기 위하여 메모리 액세스 타이밍 정보로 상기 어드레스의 일부를 인코딩하는 단계를 더 포함하는 방법.
  7. 데이터 프로세싱 시스템으로서,
    버스;
    상기 버스에 연결된 버스 마스터; 및
    상기 버스에 연결되고 제1 메모리 액세스 타이밍 특성을 가지는 제1 메모리-상기 제1 메모리는 상기 버스 마스터로부터 어드레스를 수신하며 상기 제1 메모리 액세스 타이밍 특성을 상이한 메모리 액세스 타이밍 특성으로 수정하기 위하여 상기 어드레스의 일부를 직접 이용함-
    를 포함하는 데이터 프로세싱 시스템.
  8. 제7항에 있어서,
    상기 버스에 연결되는 제2 메모리-상기 제2 메모리는 상기 제1 메모리 액세스 타이밍 특성보다 더 느린 제2 메모리 액세스 타이밍 특성을 가지며, 상기 상이한 메모리 액세스 타이밍 특성은 실질적으로 상기 제2 메모리 액세스 타이밍 특성임-를 더 포함하며,
    상기 제1 메모리는 플래시 메모리이고 상기 제2 메모리는 SRAM인 데이터 프로세싱 시스템.
  9. 데이터 프로세싱 시스템에서, 상기 데이터 프로세싱 시스템 내의 동작들을 제어하기 위한 어드레스들을 생성하는 회로로서,
    버스;
    어드레스 생성회로;
    상기 어드레스 생성회로에 연결된 메모리 관리 유니트-상기 메모리 관리 유니트는 논리 어드레스를 복수의 물리 어드레스들중 임의의 하나로 변환하기 위한 어드레스 변환 테이블을 구비하고, 상기 복수의 물리 어드레스의 각각은 상기 버스에 연결되는 데이터 프로세싱 시스템의 미리 결정된 구성요소에 대한 복수의 동작 파라미터들중 미리 결정된 하나를 포함함-
    를 포함하는 회로.
  10. 제8항에 있어서, 상기 미리 결정된 구성요소는 메모리이며 상기 복수의 동작 파라미터들은 메모리 타이밍 액세스 파라미터인 데이터 프로세싱 시스템.
KR1020057017279A 2003-03-21 2004-02-04 데이터 프로세싱 시스템의 메모리 관리 KR20050110006A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/393,592 2003-03-21
US10/393,592 US6925542B2 (en) 2003-03-21 2003-03-21 Memory management in a data processing system

Publications (1)

Publication Number Publication Date
KR20050110006A true KR20050110006A (ko) 2005-11-22

Family

ID=32988183

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057017279A KR20050110006A (ko) 2003-03-21 2004-02-04 데이터 프로세싱 시스템의 메모리 관리

Country Status (6)

Country Link
US (1) US6925542B2 (ko)
EP (1) EP1609067A4 (ko)
JP (1) JP4700604B2 (ko)
KR (1) KR20050110006A (ko)
TW (1) TWI309771B (ko)
WO (1) WO2004095288A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7376807B2 (en) * 2006-02-23 2008-05-20 Freescale Semiconductor, Inc. Data processing system having address translation bypass and method therefor
US9304773B2 (en) * 2006-03-21 2016-04-05 Freescale Semiconductor, Inc. Data processor having dynamic control of instruction prefetch buffer depth and method therefor
US7401201B2 (en) * 2006-04-28 2008-07-15 Freescale Semiconductor, Inc. Processor and method for altering address translation
US20120230395A1 (en) * 2011-03-11 2012-09-13 Louis Joseph Kerofsky Video decoder with reduced dynamic range transform with quantization matricies
KR102453193B1 (ko) * 2013-05-16 2022-10-11 어드밴스드 마이크로 디바이시즈, 인코포레이티드 영역-특정 메모리 액세스 스케줄링을 가진 메모리 시스템
KR20150044370A (ko) * 2013-10-16 2015-04-24 삼성전자주식회사 이종 메모리들을 관리하는 시스템들
KR20170059239A (ko) * 2015-11-20 2017-05-30 삼성전자주식회사 이종 메모리들을 포함하는 메모리 장치 및 메모리 시스템

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE37305E1 (en) * 1982-12-30 2001-07-31 International Business Machines Corporation Virtual memory address translation mechanism with controlled data persistence
US5418924A (en) * 1992-08-31 1995-05-23 Hewlett-Packard Company Memory controller with programmable timing
US5553144A (en) * 1993-03-11 1996-09-03 International Business Machines Corporation Method and system for selectively altering data processing system functional characteristics without mechanical manipulation
US5809340A (en) * 1993-04-30 1998-09-15 Packard Bell Nec Adaptively generating timing signals for access to various memory devices based on stored profiles
US5440710A (en) * 1994-03-08 1995-08-08 Exponential Technology, Inc. Emulation of segment bounds checking using paging with sub-page validity
US6505282B1 (en) * 1994-11-30 2003-01-07 Intel Corporation Method and apparatus for determining memory types of a multi-type memory subsystem where memory of the different types are accessed using column control signals with different timing characteristics
US5623648A (en) 1995-08-30 1997-04-22 National Semiconductor Corporation Controller for initiating insertion of wait states on a signal bus
JPH10208468A (ja) * 1997-01-28 1998-08-07 Hitachi Ltd 半導体記憶装置並びに同期型半導体記憶装置
US6073223A (en) 1997-07-21 2000-06-06 Hewlett-Packard Company Memory controller and method for intermittently activating and idling a clock signal for a synchronous memory
US6438670B1 (en) * 1998-10-02 2002-08-20 International Business Machines Corporation Memory controller with programmable delay counter for tuning performance based on timing parameter of controlled memory storage device
US6282626B1 (en) * 1999-07-15 2001-08-28 3Com Corporation No stall read access-method for hiding latency in processor memory accesses

Also Published As

Publication number Publication date
TW200506603A (en) 2005-02-16
WO2004095288A1 (en) 2004-11-04
TWI309771B (en) 2009-05-11
US20040186973A1 (en) 2004-09-23
EP1609067A4 (en) 2008-04-16
US6925542B2 (en) 2005-08-02
JP2006520969A (ja) 2006-09-14
JP4700604B2 (ja) 2011-06-15
EP1609067A1 (en) 2005-12-28

Similar Documents

Publication Publication Date Title
JP3853736B2 (ja) ユーザによる構成可能なオンチップメモリシステム
US4899272A (en) Addressing multiple types of memory devices
US20190179625A1 (en) Memory devices, systems, and methods for updating firmware with single memory device
KR100692343B1 (ko) 데이터 마스크 맵핑 정보의 취득
US6687811B1 (en) Processor with trace memory for storing access information on internal bus
US6226736B1 (en) Microprocessor configuration arrangement for selecting an external bus width
US6523755B2 (en) Semiconductor memory device
WO1997045870A1 (en) A microcontroller having an n-bit data bus width with less than n i/o pins and a method therefor
US7162563B2 (en) Semiconductor integrated circuit having changeable bus width of external data signal
KR20050110006A (ko) 데이터 프로세싱 시스템의 메모리 관리
US11537389B2 (en) Memory devices, systems, and methods for updating firmware with single memory device
US5606715A (en) Flexible reset configuration of a data processing system and method therefor
US5592652A (en) Single-chip microcomputer system having address space allocation hardware for different modes
US6766436B2 (en) Data processor having an address translation circuit
EP1164490B1 (en) Re-configurable memory map for a system on a chip
US7080191B2 (en) Method and system for accessing memory devices
US20020089883A1 (en) Control device for a vehicle engine
KR20010051159A (ko) 데이터 처리장치 및 데이터 처리시스템
JPH1139212A (ja) マイクロコンピュータ
JP2000099452A (ja) Dma制御装置
KR100377165B1 (ko) 억세스 시간의 선택적 조정 기능을 갖는 램 억세스 장치
KR100329768B1 (ko) 마이크로컨트롤러의메모리어드레싱장치
US10180847B2 (en) Circuitry for configuring entities
EP0373594B1 (en) Computer memory having its output lines selected for connection to a data bus by the memory address
JP3006487B2 (ja) エミュレーション装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application