[go: up one dir, main page]

KR920001281B1 - 정보처리장치 - Google Patents

정보처리장치 Download PDF

Info

Publication number
KR920001281B1
KR920001281B1 KR1019880004214A KR880004214A KR920001281B1 KR 920001281 B1 KR920001281 B1 KR 920001281B1 KR 1019880004214 A KR1019880004214 A KR 1019880004214A KR 880004214 A KR880004214 A KR 880004214A KR 920001281 B1 KR920001281 B1 KR 920001281B1
Authority
KR
South Korea
Prior art keywords
memory
cpu
address
supplied
mapping
Prior art date
Application number
KR1019880004214A
Other languages
English (en)
Other versions
KR880013073A (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
Priority claimed from JP62089708A external-priority patent/JPS63255749A/ja
Priority claimed from JP62089709A external-priority patent/JPS63255750A/ja
Application filed by 가부시기가이샤 도시바, 아오이 죠이찌 filed Critical 가부시기가이샤 도시바
Publication of KR880013073A publication Critical patent/KR880013073A/ko
Application granted granted Critical
Publication of KR920001281B1 publication Critical patent/KR920001281B1/ko

Links

Images

Classifications

    • 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
    • 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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/0615Address space extension
    • G06F12/0623Address space extension for memory modules

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

내용 없음.

Description

정보처리장치
제1도는 본 발명의 일실시예를 도시한 블록도.
제2도는 제1도에 도시한 메모리 시스템의 상세한 블록도.
제3도는 제2도에 도시한 매핑 레지스터의 데이타 포맷을 도시한 도면.
제4도는 제3도에 도시한 MA8 및 MA7의 값을 도시한 도면.
제5도는 본 발명의 다른 실시예를 도시한 도면.
제6도는 제5도에 도시한 메모리 시스템의 상세한 블록도.
제7도는 제6도에 도시한 매핑 레지스터의 데이타 포맷을 도시한 도면.
제8도는 표준 메모리의 용량이 640KB인 경우의 제6도에 도시한 매핑 레지스터의 값을 도시한 도면.
제9도는 표준 메모리의 용량이 512KB인 경우의 제6도에 도시한 매핑 레지스터의 값을 도시한 도면.
제10도는 메모리 칩내에 신장 메모리 영역과 확장 메모리 영역인 부분이 존재하고, 표준 메모리의 용량이 640KB인 시스템에 있어서의 CPU메모리 어드레스 공간과 메모리 칩 어드레스 공간과의 관계를 도시한 도면.
제11도는 메모리 칩내에 신장 메모리 영역과 확장 메모리 영역인 부분이 존재하고, 표준 메모리의 용량이 512KB인 시스템에 있어서의 CPU메모리 어드레스 공간과 메모리 칩 어드레스 공간과의 관계를 도시한 도면.
제12도는 메모리 칩내에 신장 메모리 영역이 존재하지 않고, 표준 메모리의 용량이 640KB인 시스템에 있어서의 CPU메모리 어드레스 공간과 메모리 칩 어드레스 공간과의 관계를 도시한 도면.
제13도는 메모리 칩내에 신장 메모리 영역이 존재하지 않고, 표준 메모리의 용량이 512KB인 시스템에 있어서의 CPU메모리 어드레스 공간과 메모리 칩 어드레스 공간과의 관계를 도시한 도면.
제14도는 LIM방식의 확장 메모리의 어드레스 공간을 도시한 도면.
제15도는 종래의 시스템을 도시한 블록도.
제16도는 제15도에 도시한 페이지 제어 레지스터의 데이타 포맷을 도시한 도면.
* 도면의 주요부분에 대한 부호의 설명
110 : CPU 120 : 시스템 버스
130 : 표준 메모리 131 : 메모리 제어 회로
132,142,152,280 : 메모리 칩들 140 : 신장 메모리
141 : 메모리 제어 회로 150 : 메모리 시스템
151,220 : 페이지 제어 레지스터 152,250 : 매핑 레지스터
153 : 메모리 제어부 210 : 판독/기입 제어 회로
211,212 : 시그날 라인 230,240 : 디코딩 회로
260 : 어드레스 합성 회로 270 : 메모리 제어 회로
620 : 621 : 대코딩 회로
본 발명은 확장 메모리(expanded memory) 방식의 하나인 LIM 방식의 확장 메모리를 구비한 정보처리 장치에 관한 것이다.
최근 퍼스널 컴퓨터의 메모리 용량이 날로 증가하는 추세에 있고, 여러 가지 형태의 메모리 방식이 제안되고 있다. 확장 메모리의 한 종류인 LIM방식의 확장 메모리는 CPU의 메모리 어드레스 공간의 일부를 윈도우라 정의하고 그 윈도우를 통해서 최대 8MB의 메모리를 CPU가 액세스하는 방식이다. LIM이란 미국 Lotus/Intel/Microsoft의 3사가 공동을 사양을 발표한 방식으로서, 그 제품예로는 미국 Interl사의 Abave(Intel사의 상표)보드를 들 수 있다.
먼저, LIM방식의 확장 메모리의 구성을 제14도에 도시한다. 확장 메모리를 액세스하기 위한 윈도우는 16KB단위로 4개가 연속된다. 이 16KB의 윈도우를 물리 페이지(physical page)라고 호칭하고, 이 4개의 물리 페이지를 합해서 페이지 프레임(page frame)이라고 호칭한다. 또, 각 물리 페이지를 통해 액세스되는 확장 메모리는 16KB단위이고, 이를 논리 페이지(logical page)라고 호칭한다. 논리 페이지는 최대 512개가 있고, 합계 용량은 16KB×512=8MB가 된다. 물리 페이지와 논리 페이지의 대응은 CPU에 의하여 페이지 제어 레지스터로 호칭되는 I/O포트 어드레스의 내용을 변경함으로써 행해진다. CPU는 합계 최대 8MB의 확장 메모리를 액세스할 수 있다.
제15도는 종래 시스템의 블록도를 도시한다. 각 확장 메모리에는 세트 번호가 부여되어 있는데, 이는 각각 페이지 제어 레지스터의 I/O포트 어드레스에 대응한다. 페이지 제어 레지스터는 각 확장 메모리에 4개씩 있다. 물리 페이지 Y 및 세트 X(X=0.1.5.6; Y=0.1.2.3)의 페이지 제어 레지스터는 제16도에 도시한 포맷을 갖고 있다. 도면에서 각 비트는 다음과 같은 의미를 가진다.
PE : 페이지 인에이블 비트
0 : 디스에이블
물리 페이지 Y에서 논리 페이지로의 사상을 세트 X의 논리 페이지의 범위에서 실시하지 아니한다.
1 ; 인에이블
물리 페이지 Y에서 논리 페이지로의 사상을 세트 X의 논리 페이지의 범위에서 실시한다.
PAi : 페이지 어드레스 비트(i=0∼6)
물리 페이지 Y를 사상하는 논리 페이지를 지정한다. PE=0일때는 무효이다.
다음, 시스템의 동작에 대하여 설명한다. CPU(110)는 시스템 버스(120)를 통하여 표준 메모리(130), 신장 메모리(140), 확장 메모리(810)(820)(830)(840)를 각각 액세스한다. 확장 메모리(810)(820)(830)(840)를 액세스할 경우, CPU(110)에서 I/O기입에 의하여 임의의 값을 미리 페이지 제어 레지스터(811)(821)(831)(841)에 세트한다.
지금 물리 페이지 Y의 데이타를 논리 페이지 Z(Z=0,1,……,511)에 사상하는 것으로 할 경우, 우선 물리 페이지 Y를 사상하는 논리 Z를 포함하는 세트 X를 결정한다. 다음 물리 페이지 Y의 데이타를 세트 X의 논리 페이지에 사상하기 위한 오프 세트를 구한다. 이 오프 세트를 PAi로 하여 PE=1로 한 8비트의 데이타를 CPU가 사상하는 페이지 Y 및 세트 X의 페이지 제어 레지스터에 I/O기입한다. 동시에 다른 세트의 페이지 제어 레지스터에는 PE=0로 한 8비트 데이타를 I/O기입한다.
또 이때 다른 페이지 제어 레지스터의 PAi는 임의의 값으로 한다. 페이지 제어 레지스터에 데이타를 세트한 후, CPU(110)가 물리 페이지 Y에 대하여 메모리 액세스를 실시하면 페이지 제어 레지스터(811)(821)(831)(841)중에서 PE=1인 세트만이 선택된다. 그리고 메모리 칩(813)(823)(833)(843)중 대응하는 메모리 칩에 대하여 CPU가 액세스를 실행한다.
그런데 반도체 기술의 진보에 따라, 고집적도의 메모리 칩이 사용가능해지고, 제15도에 도시한 4장의 확장 메모리를 1장의 보드로 작성할 수 있게 되었다.
또한, 제15도에 도시한 4장의 확장 메모리(810)(820)(830)(840), 표준 메모리(130), 신장 메모리(140)를 모두 통합하여 1장의 시스템 보드로 작성할 수도 있게 되었다. 그러나 종래의 회로를 그대로 1장의 보드에 응축하는 방식으로는 제어 회로가 복잡화되고, 원가면도 상승되는 결점이 있었다.
또, 확장 메모리에 대해서는 페이지 제어 레지스터의 PA의 비트 길이를 7비트에서 9비트로 증가시켜 1개의 페이지 제어 레지스터로 512개의 논리 페이지 전체를 제어하는 방식도 생각되었으나, 이 방식으로는 소프트웨어 적으로 페이지 제어 레지스터가 종래의 방식과 달리 소프트웨어의 호환성에 문제를 초래한다.
본 발명의 목적은 종래의 확장 메모리와 소프트웨어의 호환성을 유지하면서 고효율 대용량의 메모리 시스템을 제공하는 것이다.
본 발명의 다른 목적은 종래의 확장 메모리와 소프트웨어의 호환성을 유지하면서 고효율 및 대용량의 확장 메모리가 실현되고, 또 표준 메모리 및 신장 메모리까지도 포함한 메모리 시스템을 구비하여 이루어지는 정보처리 장치를 제공하는데 있다.
상기한 본 발명의 목적은 CPU의 어드레스 공간의 일부를 윈도우라 정의하고 이 윈도우를 통해 메모리 영역을 액세스하는 정보처리장치에 있어서, 각각 세트번호가 할당된 복수의 메모리 블록을 가지며, 이 복수의 메모리 블록이 각각 페이지 번호가 할당된 복수의 메모리 영역을 갖는 메모리칩과; 상기 CPU로부터 상기 윈도우를 통해 공급된 데이타가 격납될 메모리 영역의 페이지 번호를 나타내는 정보인 사상 정보를 격납하는 페이지 제어 레지스터와; 상기 CPU로부터 상기 윈도우를 통해 공급된 데이타가 격납될 메모리 블록의 세트번호를 나타내는 세트정보가 포함된 사상 정보를 격납하는 매핑 레지스터와; 상기 매핑 레지스터 및 상기 페이지 제어 레지스터에 격납된 사상정보에 따라서 상기 메모리 칩을 액세스하는 메모리 제어부를 구비하여 이루어지는 정보처리장치를 구성함으로써 달성될 수 있다.
본 발명에 의하면, 종래의 확장 메모리와 소프트웨어의 호환성을 유지하면서 1장의 보드로 최대 8MB의 확장 메모리를 실현할 수 있다.
이하, 첨부한 도면을 참조하여 본 발명을 더욱 상세히 설명하기로 한다.
제1도는 본 발명의 일 실시예를 도시하는 블록도이다. (120)은 시스템 버스이고, (130)은 표준 메모리이다. 표준 메모리(130)는 메모리 제어 회로(131)와 메모리 칩들(132)으로 구성되고, 시스템 버스(120)를 통하여 CPU(110)에 접속한다. (140)은 신장 메모리이다. 신장 메모리(140)는 메모리 제어 회로(141)와 메모리 칩들(142)로 구성되고, 시스템 버스(120)를 통하여 CPU(110)에 접속된다. (150)은 메모리 시스템이다. 메모리 시스템(150)은 페이지 제어 레지스터(151)와 매핑 레지스터(152)와 메모리 제어부(153) 및 메모리 칩들(154)로 구성되고, 시스템 버스(120)를 통하여 CPU(110)에 접속된다. 페이지 제어 레지스터(151)는 제15도에 도시한 페이지 제어 레지스터(811)(821)(831)(841)와 동일한 형식으로 되어 있고 제15도에 도시한 시스템과 같은 16개가 있다. 매핑 레지스터(152)는 4개의 물리 페이지에 대응해서 4개가 있고, 각 매핑 레지스터는 10비트 길이이다. 페이지 Y(Y=0,1,2,3)의 매핑 레지스터는 제3도에 도시한 포맷을 취하고 있다. 도면에서 각 비트는 다음과 같은 의미를 가진다.
ME : 맵 인에이블 비트
0 : 디스에이블
물리 페이지 Y에서 논리 페이지로의 사상을 제1도에 도시한 메모리 시스템으로 실시하지 아니한다.
1 ; 인에이블
물리 페이지 Y에서 논리 페이지로의 사상을 제1도에 도시한 메모리 시스템으로 실시한다.
MAi : 맵 어드레스 비트(i=0∼8)
물리 페이지를 사상하는 논리 페이지를 지정한다. ME=0일 때는 무효이다. ME=0인 경우, 본 메모리 시스템을 사용하지 않거나 또는 종래의 확장 메모리와의 혼재 구성을 위하여 사용된다. 또, CPU(110)로부터는 매핑 레지스터(152)가 직접 보이지 않고, 종래와 같이 합께 16개의 페이지 제어 레지스터가 보인다. 매핑 레지스터(152)에의 기입은 CPU(110)에 의한 페이지 제어 레지스터(151)에의 기입(I/O 기입)과 동시에 실시된다.
지금, CPU(110)에 의하여 제3도에 도시한 포맷의 데이타가 페이지 Y 및 세트 X를 갖는 페이지 제어 레지스터(151)에 I/O기입되고, 그후 CPU(110)에 의한 I/O판독에 의하여 그 데이타가 독출된다 한편 I/O기입에 의하여 매핑 레지스터(152)중 대응되는 매핑 레지스터에 제4도에 도시한 데이타가 기입된다. 즉 ME 비트에서 PE비트와 동일한 내용이 기입되고, 9비트의 MA비트에 의하여 세트 번호 및 논리 페이지 번호가 표시된다.
제2도에서 제1도에 도시한 메모리 시스템(150)의 상세 블록도를 도시한다. 도면에서(121)은 데이타 버스, (122)는 어드레스 버스인데, 이는 CPU(110)와 메모리 시스템(150)을 접속한다. (210)는 판독/기입 제어 회로이고, 상기 어드레스 버스(122)에 시그날 라인(211)(212)을 통하여 접속된다. (220)은 페이지 제어 레지스터이고, 시그날 라인(221)을 통하여 상기 데이타 버스(121)에 접속되고, 시그날 라인(213)을 통하여 상기 판독/기입 제어 회로(210)에 접속된다. (230)은 디코딩 회로이고, 시그날 라인(231)을 통하여 상기 어드레스 버스(122)에 접속된다. (240)도 디코딩 회로이고, 시그날 라인(232)를 통하여 상기 디코딩 회로(230)에 접속되고, 시그날 라인(233)을 통하여 상기 어드레스 버스(122)에 접속된다. (250)은 매핑 레지스터이고, 시그날 라인(124)(215)을 통하여 상기 판독/기입 제어 회로(210)에, 시그날 라인(251)(252)을 통하여 상기 데이타 버스(121)에, 시그날 라인(241)을 통하여 상기 디코딩 회로(240)에 접속된다. (260)은 어드레스 합성 회로이고, 시그날 라인(261)을 통하여 상기 어드레스 버스(122)에, 시그날 라인(253)을 통하여 상기 매핑 레지스터(250)에 접속된다. (270)은 메모리 제어 회로이고, 시그날 라인(254)을 통하여 상기 매핑 레지스터(250)에, 시그날 라인(271)을 통하여 상기 어드레스 버스(122)에, 시그날 라인(232)을 통하여 상기 디코딩 회로(230)에, 시그날 라인(262)을 통하여 상기 어드레스 합성 회로(260)에 접속된다. (280)은 메모리 칩들이고, 시그날 라인(272)(273)을 통하여 상기 메모리 제어 회로(270)에, 시그날 라인(281)을 통하여 상기 데이타 버스(121)에 접속된다.
CPU(110)는 페이지 제어 레지스터(220)에, 시그날 라인(221)을 통하여 임의의 데이타(D0-D7)를 I/O기입에 의하여 기입한다. 그것과 동시에 판독/기입 제어 회로(210)는 CPU(110)로부터 시그날 라인(211)을 통하여 공급되는 제어 신호에 따라서 시그날 라인(211)을 통하여 공급 되는 어드레스(A0-A15)로부터 페이지 선택 신호와 세트 선택 신호를 생성한다. 그리고, 매핑 레지스터(250)중 판독/기입 제어 회로(210)에서 시그날 라인(214)을 통하여 공급되는 페이지 선택 신호에 의해 선택된 매핑 레지스터에 CPU(110)로부터 시그날 라인(251)을 통하여 공급되는 데이타(D7)와 시그날 라인(252)을 통하여 공급되는 데이타(D6-D0), 및 판독/기입 제어 회로(210)로부터 시그날 라인(215)을 통하여 공급되는 세트 선택 신호(BA8과 BA7)가 기입된다. CPU(110)가 페이지 프레임에 대하여 메모리 액세스를 실시하면, 지정된 물리 페이지에 대응하는 매핑 레지스터가 상기 각 신호에 의하여 선택된다. 또, 어드레스 합성 회로(260)는 매핑 레지스터(25)로부터 시그날 라인(253)을 통하여 공급되는 신호(MA)와 CPU(110)로부터 시그날 라인(261)을 통하여 공급되는 하위 어드레스(A0-A13)를 조합한 메모리 액세스 어드레스를 생성한다. 그리고 메모리 제어회로(270)는 어드레스 합성 회로(260)로부터 공급되는 메모리 액세스 어드레스에 따라서 메모리 칩(280)에 대하여 시그날 라인(272)을 통하여 메모리 칩 어드레스를, 시그날 라인(23)을 통하여 메모리 제어 신호를 공급함으로써 메모리 판독 및 메모리 기입을 실시한다. 메모리 엑세스 어드레스는 23비트가 있으므로 8MB의 메모리 칩을 제공할 수 있다.
이것은 논리 페이지 512개에 상당한다. CPU(110)는 페이지 제어 레지스터(220)에 기입하는 데이타를 변경하므로써 동시에 매핑 레지스터의 데이타를 변경 할 수 있다. 즉 메모리 칩들(280)에 대한 액세스의 허가/금지 및 메모리 어드레스의 변경을 실시할 수 있다. 또 본 실시예에서는 페이지 프레임 어드레스를 고정하고 있으나, Intel사의 Above보드와 같이 페이지 프레임 어드레스를 변환하는 시스템에도 적용할 수 있다. 또 본 실시예에서는 종래의 확장 메모리 4매분을 1장에 통합한 확장 메모리에 대하여 설명하였으나 종래의 확장 메모리 2장 또는 3장분을 1장으로 통합한 확장 메모리에도 적용할 수 있다. 이 경우, 페이지 제어 레지스터를 각각 2세트 또는 3세트분을 준비해야 한다.
제5도는 본 발명의 다른 실시예를 도시한 시스템 블록도이다. 도면에서(110)은 CPU이고, (120)은 시스템 버스이고, (510)은 메모리 시스템이다. 메모리 시스템(510)은 페이지 제어 레지스터(511)와 매핑 레지스터(512)와 메모리 제어기(513)와 메모리 칩들(514)로 구성되고, 시스템 버스(120)를 통하여 CPU(110)에 접속된다. 페이지 제어 레지스터(511)는 제15도에 도시한 페이지 제어 레지스터(811)(821)(831)(841)와 동일한 포맷으로 되어 있고, 제15도에 도시한 시스템과 동일하게 16개가 있다. 매핑 레지스터(512)는 4개의 물리 페이지 대응하여 4개가 있고, 각 매핑 레지스터는 11 비트 길이를 갖는다. 페이지 Y(Y=0,1,2,3)의 매핑 레지스터는 제7도에 도시한 데이타 포맷을 취하고 있다. 도면에서 각 비트는 다음과 같은 의미를 가진다.
ME=맵 인에이블 비트
0=디스에이블
물리 페이지 Y에서 논리 페이지로의 사상을 제5도에 도시한 메모리 시스템으로 실시하지 아니한다.
1 ; 인에이블
물리 페이지 Y에서 논리 페이지로의 사상을 제5도에 도시한 메모리 시스템으로 실시한다.
MAi : 메모리 어드레스 비트(i=14∼23)
물리 페이지를 사상하는 논리 페이지를 지정한다. ME=0 일 때는 무효이다. ME=0 인 경우, 본 시스템 중의 확장 메모리를 사용하지 않거나 또는 종래의 확장 메모리와의 혼재 구성의 경우를 위하여 사용한다. 논리 페이지 0에서 511까지 512개가 있으므로, 9비트가 있으면 12개의 논리 페이지 중에서 임의의 논리 페이지를 지정할 수 있다. 그러나 확장 메모리에 할당된 메모리 액세스 어드레스는 시작이 0이 아니므로 MAi로는 10비트가 필요하다. 또, CPU(110)로부터 매핑 레지스터(512)가 직접 보이지 않고, 종래와 같이 합계 16개의 페이지 제어 레지스터가 보인다. 매핑 레지스터(512)에서의 기입은 CPU(110)에 의한 페이지 제어 레지스터(511)에의 기입(I/O 기입)과 동시에 실시된다.
지금, CPU(110)에 의하여 제7도에 도시한 포맷의 데이타가 페이지 Y 및 세트 X의 페이지 제어 레지스터에 I/O 기입되면, (1) 페이지 제어 레지스터(511)중 대응하는 페이지 제어 레지스터에 그 데이타가 기입되고, 그후 CPU(110)에 의하여 I/O 판독에 의하여 그 데이타가 독출된다. (2) 동시에 매핑 레지스터(512) 중 대응되는 매핑 레지스터에, ME=PE, NAi=PA(i-14)+BAi(I=14∼23)가 기입된다. 그러나 PA9=PA8=PA7=0 이고, BAi(i=14∼23)는 표준 메모리의 용량이 640KB 인 구성의 경우 제8도에 도시한 고정 데이타이며, 또한 표준 메모리의 용랭이 512KB인 구성의 경우에는 제9도에 도시한 고정 데이타이다. MAi는 세트 X의 정보도 포함하고 있으나, 페이지 제어 레지스터의 PA 비트는 각 세트 X의 논리 페이지 번호의 오프 세트만을 표시한다.
BAi는 4개의 세트에 대하여 논리 페이지 번호의 오프세트가 0인 논리 페이지, 즉 논리 페이지 0, 128, 256, 384에 대한 값이다. 또 메모리 칩 어드레스 공간에 있어서의 확장 메모리 영역의 각 세트마다의 개시 어드레스의 상위 10비트로도 생각된다. 여기에서 가산이 매핑 레지스터(512)에서 실시되고 있는 점이 중요하다. 통상, 매핑 레지스터(512)의 데이타는 CPU가 페이지 프레임을 통해 메모리 판독이나 메모리 기입을 할 경우에 독출된다. 이 독출시 가산을 실시해도 좋으나, 그 경우 가산에 필요한 시간을 위해 메모리 액세스의 속도가 저하된다 그러나 본 실시예에서는 매핑 레지스터(512)에의 기입시에 가산을 행하기 때문에 속도의 저하가 발생치 않는다.
제6도는 제5도에서 도시한 메모리 시스템(510)의 상세 블록도를 도시한다. 도면에서, (121)은 데이타 버스이고, (122)는 어드레스 버스이고, CPU(110)와 메모리 시스템(510)을 접속한다. (600)은 판독/기입 제어회로이고, 상기 어드레스 버스(122)에 시그날 라인(601)(602)을 통하여 접속된다. (610)은 페이지 제어 레지스터이고, 시그날 라인(603)을 통하여 상기 판독/기입 제어회로(600)에 접속된다. (620)(621)은 디코딩 회로이고, 디코딩 회로(620)은 시그날 라인(622)을 통하여 상기 어드레스 버스(122)에 접속된다. 디코딩 회로(621)는 시그날 라인(624)을 통하여 상기 디코딩 회로(620)에, 시그날 라인(623)을 통하여 상기 어드레스 버스(122)에 접속된다. (630)(631)(632)는 변화 회로로서, (630)은 가산회로, (631)은 O 데이타, (632)는 BA 데이타 이다. 가산회로(630)는 시그날 라인(633)을 통하여 상기 데이타 버스(122)에, 시그날 라인(634)을 통하여 상기 O 데이타(631)에, 시그날 라인(635)를 통하여 상기 BA 데이타(632)에 접속된다. BA 데이타(632)는 시그날 라인(605)을 통하여 상기 판독 기입 제어회로(600)에 접속된다. (640)은 어드레스 검출 회로이고, 시그날 라인(641)을 통하여 상기 어드레스 버스(122)에 접속된다. (650)은 매핑 레지스터이고, 시그날 라인(604)을 통하여 상기 판독/기입 제어회로(600)에, 시그날 라인(651)을 통하여 상기 데이타 버스(121)에 시그날 라인(636)을 통하여 상기 가산 회로(630)에, 시그날 라인(625)을 통하여 상기 디코딩 회로(621)에 접속된다. (660)은 선택회로이고, 시그날 라인(652)을 통하여 상기 매핑 레지스터(650)에, 시그날 라인(662)을 통하여 상기 어드레스 버스(122)에 시그날 라인(642)을 통하여 상기 어드레스 검출 회로(640)에 접속된다.
(661)은 계산 회로이고, 시그날 라인(653)을 통하여 상기 매핑 레지스터(650)에, 그리고 시그날 라인(642)을 통하여 상기 어드레스 검풀회로(640)에 접속된다. (670)은 어드레스 합성 회로이고, 시그날 라인(671)을 통하여 상기 어드레스 버스(122)에, 시그날 라인(663)을 통하여 상기 선택 회로(660)에 접속된다. (680)은 메모리 제어회로이고, 시그날 라인(664)을 통하여 상기 계산 회로(661)에, 시그날 라인(681)을 통하여 어드레스 버스(122)에, 시그날 라인(672)을 통하여 상기 어드레스 합성 회로(670)에 접속된다. (690)은 메모리 칩들이고, 시그날 라인(682)(683)을 통하여 상기 메모리 제어회로(680)에, 시그날 라인(691)을 통하여 상기 데이타 버스(121)에 접속된다.
제10도는 메모리 칩(690)내에 신장 메모리 영역과 확장 메모리 영역인 부분이 존재하고, 표준 메모리의 용량이 640 KB 인 시스템이 있어서의 CPU 메모리 어드레스 공간과 메모리 칩 어드레스 공간과의 관계를 도시한 도면이다. 제11도는 메모리 칩(690)내에 신장 메모리 영역과 확장 메모리 영역인 부분이 존재하고, 표준 메모리의 용량이 512 KB 인 시스템에 있어서, CPU 메모리 어드레스 공간과 메모리 칩 어드레스 공간과의 관계를 도시한 도면이다. 제12도는 메모리 칩(690)내에 신장 메모리 영역이 존재하지 않고, 표준 메모리의 용량이 640 KB인 시스템에 있어서의 CPU 메모리 어드레스 공간과 메모리 칩 어드레스 공간과의 관계를 도시한 도면이다. 제13도는 메모리 칩(690)내에 신장 메모리 영역이 존재하지 않고, 표준 메모리의 용량이 512 KB인 시스템에 있어서의 CPU 메모리 어드레스 공간과 메모리 칩 어드레스 공간과의 관계를 도시한 도면이다. 어느 경우에도 매핑 레지스터(650)의 MAi는 각 도면의 우측의 어드레스 공간, 즉 메모리 칩 어드레스공간의 어드레스 24비트의 상위 10비트를 유지하고 있다. 또 제10도, 제11도의 경우, 확장 메모리 영역이고 신장 메모리인 부분에 대해서는 소프트웨어에 의하여 그 사용법을 관리한다.
CPU(110)은 페이지 제어 레지스터(610)에, 시그날 라인(611)을 통하여 임의의 데이타(D0-D7)를 I/O 기입에 의하여 기입한다. 그것과 동시에 판독/기입 제어회로(600)는 CPU(110)에서 시그날 라인(601)을 통하여 공급되는 어드레스(A0-A15)로부터 페이지 선택 신호를 생성한다. 그리고 매핑 레지스터(650)중 판독/기입 제어 회로(600)로부터 시그날 라인(604)을 통하여 공급되는 페이지 선택 신호로 선택된 매핑 레지스터에는 CPU(110)로부터 시그날 라인(651)을 통하여 공급되는 데이타(D7)와 가산 회로(630)로부터 시그날 라인(636)을 통하여 공급되는 데이타(MAi)가 기입된다.
여기에서 데이타(MAi)는 O 데이타(631)로부터 공급되는 PA9, PA8, PA7에 상당하는 데이타 ″O″와, BA 데이타(632)로부터 공급되는 BAi 및 CPU(110)로부터 시그날 라인(633)을 통하여 공곱되는 데이타(D0-D6)가 가산회로(630)에서 가산된 데이타이다. CPU(110)가 페이지 프레임에 대하여 메모리 액세스를 실시하면 지정된 물리 페이지에 대응하는 매핑 레지스터(650)가 각 신호에 의하여 선택된다. 그것과 동시에 어드레스 검출 회로(640)는 페이지 프레임 어드레스가 표준 메모리 어드레스이지 신장 메모리 어드레스가 아니므로 검출 신호를 ″O″으로 검출한다. 그것에 의하여 계산 회로(661)를 개재하여 메모리 제어 회로(680)에 매핑 레지스타(650)로부터 시그날 라인(653)을 통하여 공급되는 신호 ME가 공급되고, 메모리 액세스 허가/금지를 제어한다. 어드레스 합성 회로(670)는 매핑 레지스터(650)로부터 시그날 라인(652)을 통하여 공급되는 데이타(MAi)를 상위 어드레스로 하고, CPU(110)로부터 시그날 라인(671)을 통하여 공급되는 데이타(A0-A13)을 하위 어드레스로서 합성하고, 메모리 액세스 어드레스로서 시그날 라인(672)을 통하여 메모리 제어회로(680)에 공급한다. 24비트의 메모리 액세스 어드레스는 A0-A13, MA14-MA23의 어드레스이다. CPU(110)는 페이지 제어 레지스터(610)에 기입하는 데이타를 변경함으로써 동시에 매핑 레지스터(650)의 데이타를 변경할 수 있다. 즉 메모리 칩(690)에 대한 액세스의 허가/금지 및 메모리 어드레스의 변경을 할 수 있다. 그러나 메모리 액세스 어드레스의 변경은 미리 설정된 확장 메모리의 영역중에서만 변경할 수 있다. CPU(110)에서 보면, 종래의 확장 메모리가 4매 실현되고 있는 경우와 완전히 동일한 영상이 된다.
다음에, CPU(110)가 표준 메모리 및 신장 메모리를 액세스할 경우에 대하여 설명한다. 우선 어드레스 검출 회로(640)에서 검출 신호 ″1″이 출력되고, 계산 회로(661)에서 메모리 제어회로(680)로 시그날 라인(653)을 통하여 신호″1″이 공급되며, 이에 따라 메모리 액세스가 허가된다. 선택회로(660)는 CPU(110)에서 시그날 라인(662)을 통하여 공급되는 데이타(A14-A23)를 선택하여, 시그날 라인(663)을 통하여 어드레스 합성 회로(670)로 공급한다. 그리고 어드레스 합성 회로(670)는 데이타(A14-A23)를 상위 어드레스로 하고, CPU(110)에서 시그날 라인(671)을 통하여 공급되는 A0-A13을 하위 어드레스로 하여 메모리 액세스 어드레스를 합성한다. 24비트의 메모리 액세스 어드레스는 A0-A23의 어드레스이다. 이것은 CPU(110)의 메모리 액세스 어드레스와 같고, 종래의 표준 메모리 및 신장 메모리를 액세스할 경우와 완전히 동일한 영상이 된다. 메모리 제어 회로(680)는 메모리 칩(690)에 대하여 표분 메모리, 신장 메모리 및 확장 메모리간의 구별 없이 어드레스합성 회로(670)로부터 시그날 라인(672)을 통하여 공급되는 메모리 액세스 어드레스, 연산회로(661)로부터 시그날 라인(664)을 통하여 공급되는 메모리 액세스 허가신호, CPU(110)에서 시그날 라인(681)을 통하여 공급되는 메모리 판독/기입 신호에 따라서 메모리 칩 어드레스 및 메모리 제어신호를 생성하여, 메모리 칩(690)에 대한 액세스를 실시한다.
또, 본 실시예에서는 페이지 프레임 어드레스를 고정하고 있으나, Intel 사의 Above 보드와 같이 페이지 프레임 어드레스를 가변으로 하는 시스템에도 적용할 수 있다. 또 지금까지는 종래의 확장 메모리 4 장분을 1장으로 통합할 경우에 대하여 설명하였으나, 종래의 확장 메모리 1장, 2장 또는 3장 분을 1장으로 통합할 수도 있다. 이 경우, 페이지 제어 레지스터를 1세트, 2세트 또는 3세트 분을 준비해야 한다. 본 실시예에서는 제10도, 제11도, 제12도, 제13도에 도시한 메모리 구성에 대하여 설명하였으나, 디코딩 회로와 BA 데이타를 변경시킴에 의하여 다른 메모리 구성에 적용할 수도 있다.
이와같이 하여, 종래, 개별적인 제어회로와 메모리 칩을 가지고 있던 표준 메모리, 신장 메모리 및 복수의 확장 메모리를, 동일한 메모리 제어 회로 및 동일한 메모리 칩을 갖는 메모리 시스템으로서 실현할 수가 있다. 페이지 제어 레지스터의 데이타를 CPU에 의한 메모리 액세스 경우에는 독출할 필요가 없으므로, PE 및 PA를 독출한 후에 메모리 액세스 어드레스 및 메모리 액세스의 허가를 결정하는 메모리에 비해 메모리 제어회로에 요구되는 속도가 완화된다 또한, 확장 메모리 액세스의 허가를 결정하는 메모리에 비해 메모리 제어회로에 요구되는 속도가 완화된다. 또한, 확장 메모리 액세스 경우 메모리 액세스 어드레스를 결정하기 위한 가산을 매핑 레지스터의 데이타가 기입시에 실시하므로 가산을 매핑 레지스터로부터의 데이타 독출시에 실시하는 메모리에 비해 메모리 액세스 속도를 극히 빠르게 할 수 있다. 아울러, 소프트웨어적으로는 종래의 메모리 시스템과 호환성을 갖는다.
또, 종래에는 표줌 메모리로서 1MB를 실장하고 있어도, 640 KB의 구성인 경우 384 KB가, 또한 512 KB의 구성인 경우 512 KB가 사용 불가하게 허비되고 있었으나, 본 발명에서는 이를 확장 메모리로서 사용할 수가 있다. 또한, 종래의 확장 메모리 보오드 및 신장 메모리 보오드와의 혼재가 가능하다. 그리고 보오드에 실장되는 메모리 칩이 적고 용량이 작아도 메모리 칩을 추가하는 것만으로 확장이 용이하므로 8MB/보오드의 확장 메모리의 실현이 용이하다.

Claims (3)

  1. 중앙처리장치(CPU:100)의 어드레스 공간의 일부를 윈도우라 정의하고 이 윈도우를 통해 메모리 영역을 액세스 하는 정보처리장치에 있어서, 각각 세트번호가 할당된 복수의 메모리블록을 가지며, 상기 복수의 메모리블록이 각각 페이지 번호가 할당된 복수의 메모리 영역을 갖는 메모리 칩(154,280,690)과; 상기 CPU(110)에 접속되어, 그 CPU(110)로부터 상기 윈도우를 통해 공급된 데이타가 격납될 메모리 영역이 페이지 번호를 나타내는 정보인 사상 정보를 격납하는 페이지 제어 레지스터(151,220,610)와; 상기 CPU(110) 및 상기 페이지 제어레지스터(151,220,610)에 접속되어, 상기 CPU(110)로부터 상기 윈도우를 통해 공급된 데이타가 격납될 메모리 블록의 세트번호를 나타내는 세트정보가 포함된 사상 정보를 격납하는 매핑 레지스터(152,250,650)와; 상기 CPU(110), 상기 페이지 제어 레지스터(151,220,610), 상기 매핑 레지스터(152,250,650) 및 상기 메모리 칩(154,280,690)에 접속되어, 상기 매핑 레지스터(152,250,650) 및 상기 페이지 제어 레지스터(151,220,610)에 격납된 사상 정보에 따라서 메모리 칩(154,280,690)을 액세스 하는 메모리 제어부(153,270,680)를 구비하는 것을 특징으로 하는 정보처리장치.
  2. 제1항에 있어서, 상기 CPU(110), 상기 페이지 제어 레지스터(151,220) 및 상기 매핑 레지스터(152,250)에 접속되어, 상기 CPU(110)로부터 공급된 제어신호에 따라서 상기 페이지 제어 레지스터(151,220)에 대한 판독/기입 액세스 및 상기 매핑 레지스터(152,250)에 대한 기입 액세스를 제어하는 판독/기입 제어회로(210)와; 상기 CPU(110)에 접속되어, 상기 CPU(110)로부터 공급된 메모리 어드레스에 따라서 상기 윈도우의 어드레스를 나타내는 페이지 프레임 어드레스를 검출하여, 상기 윈도우의 위치를 구하는 디코딩회로(230,240)와; 상기 CPU(110) 및 상기 매핑 레지스터(152,250)에 접속되어, 상기 매핑 레지스터(152,250)를 통해 공급된 사상 정보 및 상기 CPU(110)로부터 공급된 시스템 어드레스를 합성하는 어드레스 합성회로(260)를 구비하고; 상기 메모리 제어부(152,270)는 상기 어드레스 합성회로(260) 및 상기 디코딩회로(230,240)에 접속되어, 상기 매핑 레지스터(152,250)로부터 생성 및 공급된 메모리 액세스 허가신호와, 상기 디코딩회로(230,240)로부터 생성 및 공급된 페이지 프레임 디코드 신호와, 상기 어드레스 합성회로(260)로부터 공급된 메모리 액세스 어드레스와 상기 CPU(110)로부터 공급된 메모리 판독/기입 신호에 따라서 상기 메모리 칩(154,280)에 대한 액세스를 실행하는 것을 특징으로 하는 정보처리장치.
  3. 제1항에 있어서, 상기 CPU(110), 상기 페이지 에어 레지스터(610) 및 상기 매핑 레지스터(650)에 접속되어, 상기 CPU(110)로부터 공급된 제어신호에 따라서 상기 페이지 제어 레지스터(610)에 대한 판독/기입 액세스 및 상기 매핑 레지스터(650)에 대한 기입 액세스를 제어하는 판독/기입 제어회로(600)와; 상기 CPU(110)에 접속되어, 상기 CPU(110)로부터 공급된 메모리 어드레스에 따라서 상기 윈도우의 어드레스를 나타내는 페이지 프레임 어드레스를 검출하여, 상기 윈도우의 위치를 구하는 디코딩 회로(620,621)와; 상기 CPU(110)에 접속되어, 상기 CPU(110)로부터 공급된 어드레스에 따라서 상기 CPU(110)가 직접 사용 가능한 표준 메모리 및 신장 메모리의 어드레스를 검출하는 어드레스 검출회로(640)와; 상기 CPU(110) 및 상기 어드레스 검출회로(640)에 접속되어, 상기 매핑 레지스터(650)로부터 공급된 사상 정보 및 상기 CPU(110)로부터 공급된 어드레스 중의 어느 한쪽을, 사이,어드레스 검출회로(640)에 의해 생성 및 공급된 검출신호에 따라서 선택하는 선택회로(660)와; 상기 CPU(110) 및 상기 매핑 레지스터(650)에 접속되어, 상기 매핑 레지스터(650)을 통해 공급된 사상 정보 및 상기 CPU(110)로부터 공급된 시스템 어드레스를 합성하는 어드레스 합성회로(670)와; 상기 어드레스 검출회로(640) 및 상기 매핑 레지스터(650)로부터 공급된 사상 정보에 따라서 메모리 액세스 허가신호를 생성하는 계산 회로(661)를 구비하고; 상기 메모리 제어부(680)는 상기 어드레스 합성회로(670) 및 상기 계산회로(661)에 접속되어, 상기 계산회로(661)로부터 공급된 메모리 액세스 허가신호와 상기 어드레스 합성회로(670)로부터 공급된 메모리 액세스 어드레스와, 상기 CPU(110)로부터 공급된 메모리 판독/기입 신호에 따라서 상기 메모리 칩(690)에 대한 액세스를 실행하는 것을 특징으로 하는 정보처리장치.
KR1019880004214A 1987-04-14 1988-04-14 정보처리장치 KR920001281B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP62089708A JPS63255749A (ja) 1987-04-14 1987-04-14 メモリ・システム
JP62089709A JPS63255750A (ja) 1987-04-14 1987-04-14 メモリ・システム
JP62-89709 1987-04-14
JP62-89708 1987-04-14
JP870709 1987-04-14

Publications (2)

Publication Number Publication Date
KR880013073A KR880013073A (ko) 1988-11-29
KR920001281B1 true KR920001281B1 (ko) 1992-02-10

Family

ID=26431114

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019880004214A KR920001281B1 (ko) 1987-04-14 1988-04-14 정보처리장치

Country Status (2)

Country Link
US (1) US4943910A (ko)
KR (1) KR920001281B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02121042A (ja) * 1988-10-31 1990-05-08 Toshiba Corp メモリシステム
US5280599A (en) * 1989-01-09 1994-01-18 Kabushiki Kaisha Toshiba Computer system with memory expansion function and expansion memory setting method
US5123098A (en) * 1989-02-28 1992-06-16 Hewlett-Packard Company Method for executing programs within expanded memory of a computer system using MS or PC DOS
US5210854A (en) * 1989-06-14 1993-05-11 Digital Equipment Corporation System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version
US5271098A (en) * 1989-11-07 1993-12-14 Chips And Technologies, Inc. Method and apparatus for use of expanded memory system (EMS) to access cartridge memory
US5283889A (en) * 1989-12-29 1994-02-01 Zenith Data Systems Corporation Hardware based interface for mode switching to access memory above one megabyte
JP2834831B2 (ja) * 1990-03-05 1998-12-14 キヤノン株式会社 情報処理装置
JP3173040B2 (ja) * 1991-05-10 2001-06-04 ミノルタ株式会社 画像データ処理装置
JP2858517B2 (ja) * 1992-04-24 1999-02-17 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステム及び同システムにおいてアドレス指定可能な拡張された記憶装置を与える方法
US5455919A (en) * 1992-11-03 1995-10-03 International Business Machines Corporation Installation and use of plural expanded memory managers
US5371867A (en) * 1992-11-10 1994-12-06 International Business Machines Corporation Method of using small addresses to access any guest zone in a large memory
JPH08507630A (ja) * 1993-03-09 1996-08-13 ノベル,インコーポレイテッド メモリ管理装置およびメモリ管理方法
JPH09223065A (ja) * 1996-02-16 1997-08-26 Kikusui Electron Corp メモリ容量テスト方法およびコンピュータ・システム
US7752294B2 (en) * 2002-10-28 2010-07-06 Netapp, Inc. Method and system for dynamic expansion and contraction of nodes in a storage area network
US7685400B2 (en) * 2004-12-15 2010-03-23 International Business Machines Corporation Storage of data blocks of logical volumes in a virtual disk storage subsystem
CN101826054B (zh) * 2009-03-04 2011-12-07 安凯(广州)微电子技术有限公司 一种微内存系统的内存管理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4161036A (en) * 1977-11-08 1979-07-10 United States Of America, Director National Security Agency Method and apparatus for random and sequential accessing in dynamic memories

Also Published As

Publication number Publication date
US4943910A (en) 1990-07-24
KR880013073A (ko) 1988-11-29

Similar Documents

Publication Publication Date Title
KR920001281B1 (ko) 정보처리장치
EP0818731B1 (en) Memory board, memory access method and memory access device
US4740916A (en) Reconfigurable contiguous address space memory system including serially connected variable capacity memory modules and a split address bus
CA1262493A (en) Multi processor system
CA1216955A (en) Memory paging system in a microcomputer
JPH0715665B2 (ja) パーソナルコンピユータ
US5025415A (en) Memory card
US4754435A (en) Semiconductor device having a memory circuit
EP0540198A1 (en) Memory controller and data processing system
KR950033914A (ko) 디지탈 영상/그래픽 프로세싱을 위한 데이타 프로세서 회로 및 프로세싱 방법
JPS63255750A (ja) メモリ・システム
US6742077B1 (en) System for accessing a memory comprising interleaved memory modules having different capacities
JPS63255749A (ja) メモリ・システム
JPH0981453A (ja) メモリ制御方法及びその実施装置
US5410662A (en) Programmable control of EMS page register addresses
JPS59144966A (ja) デ−タ処理装置
JPS6113633B2 (ko)
JP3349929B2 (ja) メモリ制御装置
JP2954988B2 (ja) 情報処理装置
KR900002496Y1 (ko) 메모리 영역 확장 회로
JPS63121964A (ja) 複数プロセツサによる共有メモリのアクセス方法
JPH06309223A (ja) メモリインタリーブ機能を持つ記憶装置
JPH0770229B2 (ja) 読み出し専用メモリ装置
EP0424889A2 (en) A memory management system for reallocating memory space based on data set in registers
JPS6180193A (ja) アドレス指定方法

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 19880414

PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 19880414

Comment text: Request for Examination of Application

PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 19910430

Patent event code: PE09021S01D

G160 Decision to publish patent application
PG1605 Publication of application before grant of patent

Comment text: Decision on Publication of Application

Patent event code: PG16051S01I

Patent event date: 19920107

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 19920423

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 19920623

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 19920623

End annual number: 3

Start annual number: 1

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee