DK166238B - Fremgangsmaade og apparat til i en datamat blandt et antal programmer at udpege det program, som tildeles tilgang til et hurtigt lager - Google Patents

Fremgangsmaade og apparat til i en datamat blandt et antal programmer at udpege det program, som tildeles tilgang til et hurtigt lager Download PDF

Info

Publication number
DK166238B
DK166238B DK325187A DK325187A DK166238B DK 166238 B DK166238 B DK 166238B DK 325187 A DK325187 A DK 325187A DK 325187 A DK325187 A DK 325187A DK 166238 B DK166238 B DK 166238B
Authority
DK
Denmark
Prior art keywords
storage
program
fast
quotient
programs
Prior art date
Application number
DK325187A
Other languages
English (en)
Other versions
DK166238C (da
DK325187A (da
DK325187D0 (da
Inventor
Hans Enar Sundell
Terje Egeland
Sten Edvard Johnson
Erik Bertil Friman
Original Assignee
Ericsson Telefon Ab L M
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 Ericsson Telefon Ab L M filed Critical Ericsson Telefon Ab L M
Publication of DK325187D0 publication Critical patent/DK325187D0/da
Publication of DK325187A publication Critical patent/DK325187A/da
Publication of DK166238B publication Critical patent/DK166238B/da
Application granted granted Critical
Publication of DK166238C publication Critical patent/DK166238C/da

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Tests Of Electronic Circuits (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Complex Calculations (AREA)

Description

1 DK 16623SB
O
Opfindelsen angår en fremgangsmåde til i en datamat, som arbejder med et antal programmer, og som er tilvejebragt med et kendt, langsomt datalager og et hurtigt lager, som af omkostningsårsager kun må anvendes 5 i tilknytning til databehandlingsinstruktioner, som kræver hurtig tilgang, at udpege hvilke af programmerne, som må anvende det hurtige lager. Opfindelsen angår tillige en indretning til udøvelse af fremgangsmåden.
I datamater sker tilgang hyppigere til et fåtal 10 af udpegede lageradresser i forhold til de øvrige lageradresser. Gør man tilgangstiden til disse udpegede lageradresser så kort som muligt, formindskes tilgangstidens betydning for de øvrige lageradresser. Ved at lagre information, som gøres tilgængelig ved disse ofte anvendte 15 adresser i et hurtigt lager, et såkaldt "cache"-lager, kan lagertilgangstidens indflydelse formindskes. Dette forudsætter imidlertid, at den søgte information med stor sandsynlighed er lagret i det hurtige lager.
For hver tilgang til cache-lageret, hvor der ikke 20 findes nogen data, skrives de dertil svarende data ind i cache-lageret ved kendte løsninger af problemet. Denne kendte fremgangsmåde er anvendelig, hvis størstedelen af lagertilgangene finder sted til et begrænset antal adresser, idet denne begrænsning fastsættes ved størrelsen af 25 cache-lageret. hvis de nævnte begrænsninger ikke virker vil cache-lageret ofte komme til at mangle den søgte information, eftersom ny information allerede er skrevet ind i cache-lageret. Når der således søges tilgang til en tidligere indskrevet information, er den allerede blevet fjer-30 net, og cache-lageret indeholder fortrinsvis uegnet information. Anvendelsen af et kendt cache-lager omtales f.eks. i brugerhåndbogen til Motorola's "MC68020 32-bit Microprocessor".
35
O
DK 166238 B
2
Ved opfindelsen fjernes disse ulemper, idet der føres statistik over tilgangen med det formål at registrere, med hvilken frekvens adresserne optræder, hvorefter den hyppigst søgte information i den foregående måleperiode indlæses i det hurtige lager, således at det hurtige lager kan udnyttes optimalt.
Opfindelsen angår en fremgangsmåde som nævnt i indledningen, hvilken fremgangsmåde ifølge opfindelsen er ejendommelig ved det i den kendetegnende del af krav 1 angivne. Opfindelsen angår tillige et apparat som angivet i krav 2.
En eksempelvis udførelsesform af opfindelsen forklares i det følgende nærmere under henvisning til tegningen, hvori er vist en indretning til fortløbende sta-15 tistisk kontrol af de hyppigst forekommende tilgange. Tegningen er et blokdiagram af en indretning til statistisk bearbejdning af de programmer, som indeholder den største andel af instruktioner, som kræver hurtig tilgang, så at man heraf kan udvælge de programmer, som er relevante i 20 tilknytning til anvendelsen af et hurtigt lager.
Instruktionerne er i operationsdelen mærkede på en sådan måde, at man kan skelne mellem en første kategori, kategori A, som giver tilgang til et almindeligt lager NM, og hvor man ønsker at formindske tilgangstiden ved 25 hjælp af et hurtigt lager CM, og en anden kategori, ka tegori B, som ikke giver tilgang til det almindelige lager NM, men tilvejebringer andre funktioner.
Når instruktionerne i et program udøves skrives et nummer, som identificerer programmet, ind i et første re-30 gis ter PR samtidigt med, at et instruktionsregister IR
efterhånden opfyldes på kendt vis med instruktionerne, som indgår i programmet. Instruktionernes operationsdel OP dekodes i en dekoder AVK, og er instruktionen af kategori A, aktiveres dekoderens udgang. Programnummeret 35 i registeret PR aktiverer en til programnummeret svaren-
O
3
DK 166238B
de første tæller RFl, RF2 osv. på en sådan vis, at en
vælger SI overfører udgangssignalet fra dekoderen AVK
som et tællesignal eksempelvis til tælleren RFl, således at denne føres et trin fremad for hver instruktion af kategori A. Dette tællesignal kan imidlertid kun indtræde, 5 når en port G er aktiveret af et måleperiodesignal MS, som er tilvejebragt i en måleperiode.
Til det næste programnummer indstilles vælgeren SI til den til programnummeret svarende første tæller, eksempelvis RF2. Når måleperioden er afsluttet kan evalueringen påbegyndes. Evalueringen sker ved, at programnumrene indskrives i nummerfølge i et andet register RI, og med det indskrevne programnummer som adresse udlæses dels indholdet i de enkelte tællere RF dels et pladslager SM, som indeholder størrelser for den del af det alminde-15 lige lager, som er knyttet til det enkelt program. Disse to størrelser, dvs. tællerindstillingen og størrelsen på den del af normallageret, som er knyttet til programmet, overføres til en kvotientberegningsenhed KB, hvor den førstnævnte størrelse divideres med den sidste. Resul- 20 tatet af kvotientberegningen overføres til en første sammenligningskreds Jl, hvor det sammenlignes med en fra et sammenligningsregister JK tilvejebragt størrelse, som angiver resultatet af en tidligere kvotientberegning. Desuden overføres resultatet af kvotientberegningen til sam-menligningsregisteret JK, hvor den tidligere indskrevne størrelse erstattes med den nye størrelse, hvis sammenligningen i sammenligningskredsen Jl har vist, at det nye resultat er større end den foregående størrelse. Er re-3o sultatet mindre end eller lig med den forudgående størrelse, forøges det andet registers størrelse med en for overføring af størrelserne til det efterfølgende program. Er der derimod sket en forøgelse af størrelsen i sammenligningsregisteret JK, overføres indholdet fra det andet register RI til et tredje register R2, hvorefter størrelsen i re-35 gisteret RI forøges med en for overførelse af værdierne til det efterfølgende program.
DK 166238 B
O
4
Dette forløb gentages indtil samtlige programmer er blevet behandlet på denne vis, hvorefter nummeret for det program, som har den største kvotient, og således er det program, som er mest berettiget til at anvende det hurtige 5 lager CM, kommer til at stå i registeret R2. Information til dette program, som modsvarer nummeret i registeret R2 kopieres fra det langsomme lager NM til det hurtige lager CM. Dette vil imidlertid ikke finde sted, før samtlige programmer er blevet behandlede. Hertil er tilvejebragt 10 et fjerde register R3, som indeholder det højeste programnummer, som skal behandles. Når indholdet i registrene Ri og R3 er blevet sammenlignet i en anden sammenligningskreds J2, og har vist sig at være lige store, kan indholdet i registeret R2 adressere begyndelsesadressen til 15 et andet programs information i normallageret NM over et adresselager AM, som er angivet med en forbindelse mellem søjle 2 i adresselageret AM og normallageret NM. Herefter afmærkes i adresselageret AM, at informationen findes i det hurtige lager CM, samt på hvilken adresse. Adresse-20 lageret AM indbefatter indledningsvis kun informationens startadresse i lageret NM, hvor al information oprindelig findes. Desuden findes i adresselageret AM plads til markering af, om det hurtige lager CM anvendes og plads til i dette tilfælde at anføre informationens startadresse 25 i lageret CM. Når det mest berettigede programs startadresse er blevet adresseret gennem adresselageret AM, overføres informationen til den første ledige adresse i det hurtige lager CM, som udpeges af en anden tæller RN. Tælleren RN føres et trin frem ved en anden styrekreds 30 SRN, som påvirkes hver gang en overføring af information finder sted fra normallageret NM til det hurtige lager CM.
Ifølge den eksempelvise udføreIsesform var det program, som har information lagret fra og med adresse nr.
35 2 i normallageret NM det første, som var berettiget til
DK 166238B
5 o at udnytte hurtiglageret CM, og den anden tæller RN har udpeget adressen 0 i hurtiglageret CM på samme tid, som den har indskrevet i adressen i tredje søjle i adresse-lageret AM. Herefter skal det tillige markeres i lageret AM, at det hurtige lager skal anvendes i stedet for det langsomme, hvilket er vist ved i første søjle at ændre "NO" til "YES", hvilket i praksis kan ske ved eksempelvis at erstatte et "0" med et "1". Hertil anvendes en styrelogik SR2, som udfører denne ændring fra "0" til "1", når den modtager både adressen fra den første styrekreds SRI og signalet fra den anden tæller RN, som tegn på, at adressen i det hurtige lager CM er indskrevet i adresselageret AM.
Når den mest berettiget programinformation er indskrevet i hurtiglageret CM, og adresse og markering er indført i adresselageret AM, nulstilles det andet register RI, og det mest berettigede programs tæller RF nulstilles over en vælger S3, hvorefter kvotientsammen-ligningen gentages for tilvejebringelse af den næsthøjeste kvotient.
Herefter gentages forløbet med kopiering til hurtiglageret CM og lagring af adresse og markering i adresselageret AM, med mere. Når informationen i programmet med den næsthøjeste kvotient er skrevet ind i hurtiglage-25 ret, og adresse og markering er indført i adresselageret, nulstilles det andet register Ri, og dette programs tæller RF over vælgeren S3. Herefter gentages kvotientsammenligningen, kopiering til hurtiglageret med mere, ind-3Q til det hurtige lager ér opfyldt. Gennem successiv gen tagelse af måleperioderne og tilsvarende omgrupperinger udnyttes det hurtige lager optimalt.
35

Claims (5)

  1. 6 DK 166238 B o Patentkrav.
  2. 1. Fremgangsmåde til i datamat, som arbejder med et antal programmer, og som er tilvejebragt med et kendt, 5 forholdsvis langsomt arbejdende lager og et hurtigt lager, som af omkostningsmæssige årsager kun må udnyttes til instruktioner, som kræver hurtig tilgang, at udpege hvilke programmer, som må udnytte det hurtige lager, kendetegnet ved, at der i en prøveperiode for hvert pro-10 gram registreres antallet af instruktioner i programmet, som kræver tilgang til lageret, hvorefter dette antal divideres med hele den lagerplads, som et program udkræver, idet de på sådan vis efter hinanden tilvejebragte kvotienter indbyrdes sammenlignes, hvorefter lagerindholdet for pro-15 grammet med den højeste kvotient overføres fra det lang somme lager til det hurtige lager, hvorefter kvotientsammenligning og lagerindhoIdsoverføring gentages for tilvejebringelse af programmet med det næsthøjeste kvotient, indtil hele det hurtige lager er opfyldt med data fra det lang-20 somme lager.
  3. 2. Apparat til udøvelse af fremgangsmåden ifølge krav 1, kendetegnet ved, at indbefatte et instruktionsregister (IR) og en dekoder (AVK) til angivelse af, om en indskrevet instruktion udnytter lageret, en tæl- 25 lerindretning (RF1, 2 osv.), som tæller antallet af in struktioner hørende til de enkelte programmer, som udnytter lageret og et lagerareal (SM), som indeholder oplysninger om de til de enkelte programmer nødvendige lagerarealer, idet der er tilvejebragt en målekreds (Ri, R2,
  4. 30 JR, KB, Jl), som ved afslutningen af en måleperiode suc cessivt udlæser de for de enkelte programmer tilvejebragte resultater i tælleindretningen (RF1, 2) og dertil knyttede lagerarealer fra lagerområdet (SM) og udpeger nummeret til det program, for hvilket den nævnte kvotient udviser den 35 højeste værdi, samt at et adresselager (AM) er tilvejebragt,
  5. 7 DK 166238 B O i hvilket overføringen af information, som hører til programmet med den højeste kvotient, tilvejebringer markering af, at det hurtige lager (CM) anvendes i stedet for det langsomme lager (NM) og registrering af startadres-5 sen i (CM) for programmets information. 10 15 20 25 30 35
DK325187A 1986-06-26 1987-06-25 Fremgangsmaade og apparat til i en datamat blandt et antal programmer at udpege det program, som tildeles tilgang til et hurtigt lager DK166238C (da)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SE8602858A SE453617B (sv) 1986-06-26 1986-06-26 Sett och anordning for att i en dator bestemma vilka av programmen som far utnyttja ett snabbt minne
SE8602858 1986-06-26

Publications (4)

Publication Number Publication Date
DK325187D0 DK325187D0 (da) 1987-06-25
DK325187A DK325187A (da) 1987-12-27
DK166238B true DK166238B (da) 1993-03-22
DK166238C DK166238C (da) 1993-08-16

Family

ID=20364943

Family Applications (1)

Application Number Title Priority Date Filing Date
DK325187A DK166238C (da) 1986-06-26 1987-06-25 Fremgangsmaade og apparat til i en datamat blandt et antal programmer at udpege det program, som tildeles tilgang til et hurtigt lager

Country Status (18)

Country Link
US (1) US4858118A (da)
EP (1) EP0252042B1 (da)
KR (1) KR910008919B1 (da)
CN (1) CN1008482B (da)
AU (1) AU594475B2 (da)
BR (1) BR8703191A (da)
CA (1) CA1283487C (da)
DE (1) DE3764414D1 (da)
DK (1) DK166238C (da)
DZ (1) DZ1101A1 (da)
ES (1) ES2016994B3 (da)
FI (1) FI89985C (da)
GR (1) GR3000766T3 (da)
HK (1) HK7591A (da)
IE (1) IE60660B1 (da)
MX (1) MX169065B (da)
NO (1) NO171336C (da)
SE (1) SE453617B (da)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB979633A (en) * 1960-04-20 1965-01-06 Nat Res Dev Improvements in or relating to electronic digital computing machines
US3292153A (en) * 1962-10-01 1966-12-13 Burroughs Corp Memory system
US3588839A (en) * 1969-01-15 1971-06-28 Ibm Hierarchical memory updating system
GB1354827A (en) * 1971-08-25 1974-06-05 Ibm Data processing systems
US3949378A (en) * 1974-12-09 1976-04-06 The United States Of America As Represented By The Secretary Of The Navy Computer memory addressing employing base and index registers
GB1515376A (en) * 1975-07-09 1978-06-21 Int Computers Ltd Data storage systems
US4035778A (en) * 1975-11-17 1977-07-12 International Business Machines Corporation Apparatus for assigning space in a working memory as a function of the history of usage
US4453230A (en) * 1977-12-29 1984-06-05 Tokyo Shibaura Electric Co., Ltd. Address conversion system
JPS58203558A (ja) * 1982-05-21 1983-11-28 Hitachi Ltd 計算機・記憶装置へのフアイル割り当て方式
JPS5952487A (ja) * 1982-09-16 1984-03-27 Hitachi Ltd 磁気バブル記憶素子の高速アクセス方法
US4638427A (en) * 1984-04-16 1987-01-20 International Business Machines Corporation Performance evaluation for an asymmetric multiprocessor system

Also Published As

Publication number Publication date
SE8602858D0 (sv) 1986-06-26
FI872342A7 (fi) 1987-12-27
ES2016994B3 (es) 1990-12-16
SE453617B (sv) 1988-02-15
HK7591A (en) 1991-02-01
AU594475B2 (en) 1990-03-08
DK166238C (da) 1993-08-16
KR890000971A (ko) 1989-03-17
DK325187A (da) 1987-12-27
NO171336C (no) 1993-02-24
FI89985B (fi) 1993-08-31
BR8703191A (pt) 1988-03-08
IE871573L (en) 1987-12-26
CN1008482B (zh) 1990-06-20
AU7468987A (en) 1988-01-07
NO872387L (no) 1987-12-28
KR910008919B1 (ko) 1991-10-24
FI89985C (sv) 1993-12-10
DK325187D0 (da) 1987-06-25
EP0252042A1 (en) 1988-01-07
NO872387D0 (no) 1987-06-05
CA1283487C (en) 1991-04-23
MX169065B (es) 1993-06-21
DE3764414D1 (de) 1990-09-27
NO171336B (no) 1992-11-16
SE8602858L (sv) 1987-12-27
GR3000766T3 (en) 1991-10-10
CN87104515A (zh) 1988-01-06
EP0252042B1 (en) 1990-08-22
IE60660B1 (en) 1994-08-10
DZ1101A1 (fr) 2004-09-13
US4858118A (en) 1989-08-15
FI872342A0 (fi) 1987-05-27

Similar Documents

Publication Publication Date Title
US3878513A (en) Data processing method and apparatus using occupancy indications to reserve storage space for a stack
US3771144A (en) Clock for computer performance measurements
CA1173565A (en) Apparatus and method for selective cache clearing in a data processing system
US3675215A (en) Pseudo-random code implemented variable block-size storage mapping device and method
US4888679A (en) Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements
JP2825550B2 (ja) 多重仮想空間アドレス制御方法および計算機システム
CA2022529C (en) Apparatus for page tagging in a computer system
KR100309615B1 (ko) 고속프로그램가능로직컨트롤러(plc)
US5117493A (en) Pipelined register cache
US3673573A (en) Computer with program tracing facility
US4882673A (en) Method and apparatus for testing an integrated circuit including a microprocessor and an instruction cache
GB1299962A (en) Data processor interrupt system
US4648033A (en) Look-aside buffer LRU marker controller
DK166238B (da) Fremgangsmaade og apparat til i en datamat blandt et antal programmer at udpege det program, som tildeles tilgang til et hurtigt lager
US4388687A (en) Memory unit
JPS5987566A (ja) メモリアクセス検出方式
KR920701905A (ko) 신호처리장치 및 방법
GB1495729A (en) Apparatus and method for handling exceptions in a data processing system
GB2037466A (en) Computer with cache memory
JP2794782B2 (ja) 命令取出装置
CA1328026C (en) Apparatus and method for enhanced virtual to real address translation for accessing a cache memory unit
US4125879A (en) Double ended stack computer store
CA1180129A (en) Memory unit
JPS62501526A (ja) 変数を含まない関数型言語コードを用いる2進有向グラフとしてストアされたプログラムを評価する縮少プロセッサのためのシステムアロケータ
JP2001134471A (ja) デバッグ装置及びデバッグ方法

Legal Events

Date Code Title Description
PBP Patent lapsed