Browse Prior Art Database

Method for Handling Unaligned Operands that Extend Across Memory Protection Boundaries in a Microprocessor

IP.com Disclosure Number: IPCOM000112304D
Original Publication Date: 1994-Apr-01
Included in the Prior Art Database: 2005-Mar-27
Document File: 2 page(s) / 77K

Publishing Venue

IBM

Related People

Moore, CR: AUTHOR [+4]

Abstract

The following discloses a technique for handling unaligned operands that cross a memory protection boundary in a microprocessor.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Method for Handling Unaligned Operands that Extend Across Memory
Protection Boundaries in a Microprocessor

      The following discloses a technique for handling unaligned
operands that cross a memory protection boundary in a microprocessor.

      An unaligned operand is one that is located in memory on an
address that is not a multiple of the size of the operand.  For
example, a 4 byte operand that is located at an address that is a
multiple of 4 is considered to be aligned.  A 4 byte operand that is
located at an address that is a multiple of 2 but not a multiple of 4
is considered to be unaligned.  Single byte operands are always
aligned.  Double byte, word (4 bytes) and double word (8 bytes)
operands may be aligned or unaligned depending the address of their
location in memory.

      Unaligned operands may cross protection domains and therefore
present several implementation difficulties for microprocessors.  A
protection domain is a region of memory (such as a page) that has the
same access characteristics (such as 'read/write' or 'read only').

      The processor under development had certain design constraints
that any method of handling unaligned operands must conform to:
first, operands that crossed a double word or larger boundary were
split into 2 pieces (one piece for each double word); second, the
memory subsystem required that the second piece of the unaligned
access must always follow the first piece.  The consequence of this
was that if an access violation was going to occur on the second
piece, it had to be detected before the first piece was sent to the
memory subsystem.

      A complicating factor was that there were 2 types of protection
domains to consider: a page (4KB) and a segment (256MB).  Some types
of aligned accesses were allowed to cross a page boundary, but not a
...