Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Intel iAPX 432
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Object-oriented memory and capabilities=== The iAPX 432 has hardware and microcode support for [[object-oriented programming]] and [[capability-based addressing]].<ref>{{cite book|first=Henry M.|last=Levy|chapter=Chapter 9: The Intel iAPX 432|title=Capability-Based Computer Systems|publisher=[[Digital Press]]|year=1984|url=https://homes.cs.washington.edu/~levy/capabook/|chapter-url=http://www.cs.washington.edu/homes/levy/capabook/Chapter9.pdf}}</ref><ref>{{Cite book |last=Organick |first=Elliott I. |url=https://www.worldcat.org/oclc/9110667 |chapter=Chapter 4: i432 Object Structures for Program Execution |title=A programmer's view of the Intel 432 system |date=1983 |publisher=McGraw-Hill |isbn=0-07-047719-1 |location=New York |oclc=9110667}}</ref> The system uses [[segmented memory]], with up to 2<sup>24</sup> segments of up to 64 [[Kibibyte|KB]] each, providing a total virtual address space of 2<sup>40</sup> bytes. The physical address space is 2<sup>24</sup> bytes (16 [[Megabyte|MB]]). Programs are not able to reference data or instructions by address; instead they must specify a segment and an offset within the segment. Segments are referenced by ''[[Discretionary access control|access descriptors]] (ADs)'', which provide an index into the system object table and a set of rights ([[Capability-based security|capabilities]]) governing accesses to that segment. Segments may be "access segments", which can only contain Access Descriptors, or "data segments" which cannot contain ADs. The hardware and microcode rigidly enforce the distinction between data and access segments, and will not allow software to treat data as access descriptors, or vice versa. System-defined objects consist of either a single access segment, or an access segment and a data segment. System-defined segments contain data or access descriptors for system-defined data at designated offsets, though the operating system or user software may extend these with additional data. Each system object has a type field which is checked by microcode, such that a Port Object cannot be used where a Carrier Object is needed. User programs can define new object types which will get the full benefit of the hardware type checking, through the use of ''type control objects (TCOs)''. In Release 1 of the iAPX 432 architecture, a system-defined object typically consisted of an access segment, and optionally (depending on the object type) a data segment specified by an access descriptor at a fixed offset within the access segment. By Release 3 of the architecture, in order to improve performance, access segments and data segments were combined into single segments of up to 128 kB, split into an access part and a data part of 0–64 KB each. This reduced the number of object table lookups dramatically, and doubled the maximum virtual address space.<ref>{{cite book|author=Glenford J Meyers|title=Advances in Computer Architecture|edition=2nd|publisher=Wiley|year=1982|isbn=978-0-471-07878-4|chapter=Section VI: Overview of the Intel iAPX432 Architecture}}</ref> The iAPX432 recognizes fourteen types of predefined ''system objects'':<ref name=GDPRef>{{cite book|last1=Intel Corporation|title=iAPX432 GENERAL DATA PROCESSOR ARCHITECTURE REFERENCE MANUAL|date=1983|url=http://www.bitsavers.org/components/intel/iAPX_432/171860-004_iAPX_432_General_Data_Processor_Architecture_Reference_Manual_Feb84.pdf|access-date=Nov 16, 2015}}</ref>{{rp|pp.1-11β1-12}} * '''instruction object''' contains executable instructions * '''domain object''' represents a program module and contains references to subroutines and data * '''context object''' represents the context of a process in execution * '''type-definition object''' represents a software-defined object type * '''type-control object''' represents type-specific privilege * '''object table''' identifies the system's collection of active object descriptors * '''storage resource object''' represents a free storage pool * '''physical storage object''' identifies free storage blocks in memory * '''storage claim object''' limits storage that may be allocated by all associated storage resource objects * '''process object''' identifies a running process * '''port object''' represents a port and message queue for interprocess communication * '''carrier''' Carriers carry messages to and from ports * '''processor''' contains state information for one processor in the system * '''processor communication object''' is used for interprocessor communication
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)