An Entity of Type: topical concept, from Named Graph: http://dbpedia.org, within Data Space: dbpedia.org

In computer engineering, register windows are a feature which dedicates registers to a subroutine by dynamically aliasing a subset of internal registers to fixed, programmer-visible registers. Register windows are implemented to improve the performance of a processor by reducing the number of stack operations required for function calls and returns. One of the most influential features of the Berkeley RISC design, they were later implemented in instruction set architectures such as AMD Am29000, Intel i960, Sun Microsystems SPARC, and Intel Itanium.

Property Value
dbo:abstract
  • Registerfenster sind eine Organisationsform der prozessorientierten Register. Diese ermöglichen das schnelle Hin- und Herschalten zwischen verschiedenen Prozessen (auch als Multithreading bezeichnet) ohne aufwändiges Neuladen der Registerinhalte, da das Register auf den vom aktiven Prozess benötigten "Fenster" umgeschaltet werden kann. (de)
  • In computer engineering, register windows are a feature which dedicates registers to a subroutine by dynamically aliasing a subset of internal registers to fixed, programmer-visible registers. Register windows are implemented to improve the performance of a processor by reducing the number of stack operations required for function calls and returns. One of the most influential features of the Berkeley RISC design, they were later implemented in instruction set architectures such as AMD Am29000, Intel i960, Sun Microsystems SPARC, and Intel Itanium. (en)
  • En architecture des ordinateurs, les fenêtres de registres constituent une technique pour améliorer la performance des appels de fonctions. Elles ont été utilisées pour la première fois dans les processeurs RISC de Berkeley, qui sont à l'origine des architectures SPARC, AMD 29000 et Intel i960. La plupart des processeurs ont un petit nombre de mémoires très rapides appelées registres. Les processeurs utilisent les registres afin de stocker temporairement des valeurs lors de l'exécution des suites d'instructions. L'augmentation du nombre de registres dans la conception initiale du processeur peut donner lieu à des gains de performances très importants. Bien que les registres soient un facteur de performance, ils présentent également des inconvénients. Les différentes parties d'un programme informatique utilisent chacune leurs propres valeurs temporaires, et par conséquent veulent toutes utiliser les registres. La bonne compréhension du déroulement de l'exécution d'un programme étant très difficile, il n'existe pas de méthode simple qui permette au développeur de savoir à l'avance combien de registres chaque partie de programme devrait utiliser. En règle générale, les considérations de ce genre sont tout simplement ignorées : les développeurs et encore plus probablement les compilateurs qu'ils utilisent essaient d'utiliser tous les registres visibles. C'est d'ailleurs la seule bonne façon de procéder dans le cas où le processeur utilisé dispose de peu de registres. C'est alors qu'entrent en jeu les fenêtres de registres. Puisque chaque partie du programme aimerait disposer des registres pour elle seule, il suffit alors de fournir plusieurs ensembles de registres distincts aux différentes parties du programme. Le problème, c'est que si tous les registres sont visibles, alors une partie va vouloir utiliser des registres qui ne font pas partie de l'ensemble des registres qu'elle s'est vue attribuer. L'astuce est donc de rendre invisible pour elle tous les registres qui n'appartiennent pas à son ensemble de registres. Ainsi, dans la conception du RISC de Berkeley, les programmes ne voient que 8 registres sur un total de 64. L'ensemble complet des registres constitue un banc de registres, et chaque sous-ensemble de 8 registres une fenêtre. De cette manière, il peut y avoir jusqu'à 8 appels de fonctions qui ont leur propre ensemble de 8 registres chacune. Si le programme ne présente pas d'appels de fonctions imbriqués dont la profondeur dépasse 8, le processeur n'a alors pas besoin de décharger les registres, c'est-à-dire de les sauvegarder en mémoire centrale ou en cache, des mémoires dont les temps d'accès sont extrêmement lents comparés à celui des registres. Notons d'ailleurs que des études statistiques sur des programmes tels des systèmes d'exploitation ou des applications réelles ont montré que la profondeur maximale d'appels imbriqués est en moyenne de 8 et qu'une profondeur plus importante ne se rencontre que dans 1 % des cas. (fr)
  • In elettronica register windows è una tecnica utilizzata per incrementare le prestazioni di operazioni particolarmente comuni come le chiamate alle subroutine (o procedure). Affrontando direttamente a livello hardware i problemi derivati dalle chiamate alle procedure si ottiene un sicuro incremento delle prestazioni dei computer. La risoluzione a livello hardware del problema è una caratteristica distintiva del progetto Berkeley RISC che in seguito è stato utilizzata dai processori commerciali SPARC, AMD 29000 e Intel i960 e dall'architettura EPIC. (it)
  • レジスタウィンドウとは、コンピュータのCPUの一般的な動作であるプロシージャコールの性能を向上させる技法である。 この問題にハードウェアをつぎ込むことによってほとんど全てのコンピュータプログラムが高速に動作するようになる。これはバークレーRISCの設計上の特長のひとつであり、後にSPARC、AMD 29000、Intel i960で商用化された。 多くのCPUの設計では、レジスタと呼ばれる小規模な超高速メモリを持っている。レジスタは、長い命令列を実行中にCPUが一時的に値を保持しておくのに使われる。レジスタが多ければ性能が向上するが、レジスタというのはCPUの命令セットと密接な関係がある。一度CPUをリリースしてしまったら簡単にはレジスタを増やしたり出来ない。 レジスタは万能の性能向上策であるが、問題もある。コンピュータプログラムの別々の箇所はそれぞれ一時的な値を持っているため、レジスタの使用が競合してしまう。プログラムが実行時にどう動くかをよく理解することは困難である。開発者が実際に開発中に、自分が書いているコードがどれだけレジスタを使ったらよいか、どれだけをプログラムの他の部分のために残しておいたらよいかを決めるのは容易ではない。一般にそのような考慮は無視され、開発者あるいは彼らが使うコンパイラは見えている全てのレジスタを使うものである。 ここにレジスタウィンドウの使い道が出てくる。プログラムの各部はそこだけで使えるレジスタを必要とするので、プログラムの各部分ごとにレジスタのセットを提供することに意味が出てくる。もちろん、レジスタのセット以外のレジスタもプログラムのある部分から見えるなら、それも使われてしまうだろう。ここでのトリックはあるレジスタセット以外のレジスタを見えなくしてしまうことにある。これは何か複雑なことのように聞こえるかもしれないが、実際は単純である。プログラムのある部分から別の部分へプロシージャコールで移動するとCPUは簡単にそれを検知できる。一般にプロシージャコールはいくつかの決まった命令列で構成され、元に戻るときも決まった命令列を使う。バークレーの設計では、プロシージャコールの命令列によって新たなレジスタセットがそれまでのレジスタセットと入れ替えられる。また、プロシージャから元の場所に戻るときは、それまで使っていたレジスタセットに"dead"(あるいは"reusable")という印をつける。 バークレーRISCの設計では、全部で64本あるレジスタのうち 8本がプログラムから見えるようになっている。レジスタ全体のことをレジスタファイルと呼び、8本のレジスタのことをウィンドウと呼ぶ。このレジスタファイルによれば、最大で8レベルのプロシージャコールがレジスタファイル内で実行可能である。プログラムが8レベル以上の深さでプロシージャをコールしない限りレジスタがあふれる(つまり主記憶かキャッシュに追い出される)ことはない。レジスタがあふれたときの処理はかなり時間を要する。ほとんどのプログラムは6レベルまでの深さの範囲内で処理を行う。 比較のためサン・マイクロシステムズのSPARCアーキテクチャを説明する。こちらの場合、8本のレジスタのセットが4個同時に見えるようになっている。そのうち3セットがウィンドウとなっている。 1. * i0 - i7 の8本のレジスタは現在のプロシージャへの入力レジスタ(つまり引数) 2. * L0 - L7 の8本のレジスタはローカルに使用 3. * o0 - o7 の8本のレジスタは次のレベルのプロシージャに渡す出力レジスタ あるプロシージャがコールされたときレジスタウィンドウが16本ぶんずらされて、コール元の入力レジスタとローカルレジスタを隠し、元の出力レジスタを新たな入力レジスタとする。ウィンドウ化されていない8本のレジスタ(g0 - g7)はどのプロシージャからも見えるようになっている。 AMD 29000ではウィンドウのサイズを可変にしている。というのは一般にほとんどのプロシージャの引数は8個より少ないため、可変にすることでレジスタを無駄使いしなくなるのである。また、29000ではグローバルなレジスタ64本とウィンドウ用レジスタ128本を持っている。 レジスタウィンドウはアップグレードも容易である。レジスタを追加してもプログラムからは見えないので、ウィンドウを追加することはいつでもできるのである。ところで、オブジェクト指向プログラミングでは、通常よりも小さなプロシージャコールが多く発生する。これに対しては例えばウィンドウの数を8から16に増やすことで対応できる。SPARCではそのようにして対応し、新たな世代のアーキテクチャではレジスタウィンドウ数が増えている。そのため、レジスタウィンドウがオーバフローすることが少なくなった。 レジスタウィンドウは性能を向上させる唯一の方法ではない。スタンフォード大学のグループはMIPSアーキテクチャを設計したが、彼らはバークレーのやっていることを見てレジスタ数が不十分なのではなく、使い方が問題なのだと判断した。彼らはコンパイラの研究に時間を費やし、MIPS命令セットとレジスタを完全に使いこなすコンパイラの完成を目指した。これによりレジスタ数を半分にしてチップをより単純化し、ひとつのプロシージャが使うレジスタ数を減らさずに性能を向上させた。最終的に、現代的なコンパイラによってMIPSはプロシージャコールの際にもレジスタを有効に使うことに成功した。 (ja)
  • Реги́стровое окно́ — один из методов организации работы с регистрами процессора, применяемый для снижения накладных расходов на работу со стеком при вызовах подпрограмм. (ru)
dbo:thumbnail
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 480380 (xsd:integer)
dbo:wikiPageLength
  • 6575 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID
  • 1090981560 (xsd:integer)
dbo:wikiPageWikiLink
dbp:wikiPageUsesTemplate
dcterms:subject
gold:hypernym
rdf:type
rdfs:comment
  • Registerfenster sind eine Organisationsform der prozessorientierten Register. Diese ermöglichen das schnelle Hin- und Herschalten zwischen verschiedenen Prozessen (auch als Multithreading bezeichnet) ohne aufwändiges Neuladen der Registerinhalte, da das Register auf den vom aktiven Prozess benötigten "Fenster" umgeschaltet werden kann. (de)
  • In computer engineering, register windows are a feature which dedicates registers to a subroutine by dynamically aliasing a subset of internal registers to fixed, programmer-visible registers. Register windows are implemented to improve the performance of a processor by reducing the number of stack operations required for function calls and returns. One of the most influential features of the Berkeley RISC design, they were later implemented in instruction set architectures such as AMD Am29000, Intel i960, Sun Microsystems SPARC, and Intel Itanium. (en)
  • In elettronica register windows è una tecnica utilizzata per incrementare le prestazioni di operazioni particolarmente comuni come le chiamate alle subroutine (o procedure). Affrontando direttamente a livello hardware i problemi derivati dalle chiamate alle procedure si ottiene un sicuro incremento delle prestazioni dei computer. La risoluzione a livello hardware del problema è una caratteristica distintiva del progetto Berkeley RISC che in seguito è stato utilizzata dai processori commerciali SPARC, AMD 29000 e Intel i960 e dall'architettura EPIC. (it)
  • Реги́стровое окно́ — один из методов организации работы с регистрами процессора, применяемый для снижения накладных расходов на работу со стеком при вызовах подпрограмм. (ru)
  • En architecture des ordinateurs, les fenêtres de registres constituent une technique pour améliorer la performance des appels de fonctions. Elles ont été utilisées pour la première fois dans les processeurs RISC de Berkeley, qui sont à l'origine des architectures SPARC, AMD 29000 et Intel i960. (fr)
  • レジスタウィンドウとは、コンピュータのCPUの一般的な動作であるプロシージャコールの性能を向上させる技法である。 この問題にハードウェアをつぎ込むことによってほとんど全てのコンピュータプログラムが高速に動作するようになる。これはバークレーRISCの設計上の特長のひとつであり、後にSPARC、AMD 29000、Intel i960で商用化された。 多くのCPUの設計では、レジスタと呼ばれる小規模な超高速メモリを持っている。レジスタは、長い命令列を実行中にCPUが一時的に値を保持しておくのに使われる。レジスタが多ければ性能が向上するが、レジスタというのはCPUの命令セットと密接な関係がある。一度CPUをリリースしてしまったら簡単にはレジスタを増やしたり出来ない。 レジスタは万能の性能向上策であるが、問題もある。コンピュータプログラムの別々の箇所はそれぞれ一時的な値を持っているため、レジスタの使用が競合してしまう。プログラムが実行時にどう動くかをよく理解することは困難である。開発者が実際に開発中に、自分が書いているコードがどれだけレジスタを使ったらよいか、どれだけをプログラムの他の部分のために残しておいたらよいかを決めるのは容易ではない。一般にそのような考慮は無視され、開発者あるいは彼らが使うコンパイラは見えている全てのレジスタを使うものである。 (ja)
rdfs:label
  • Registerfenster (de)
  • Fenêtre de registres (fr)
  • Register window (it)
  • レジスタ・ウィンドウ (ja)
  • Register window (en)
  • Регистровое окно (ru)
owl:sameAs
prov:wasDerivedFrom
foaf:depiction
foaf:isPrimaryTopicOf
is dbo:wikiPageDisambiguates of
is dbo:wikiPageRedirects of
is dbo:wikiPageWikiLink of
is foaf:primaryTopic of
Powered by OpenLink Virtuoso    This material is Open Knowledge     W3C Semantic Web Technology     This material is Open Knowledge    Valid XHTML + RDFa
This content was extracted from Wikipedia and is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License