IP Library Granted Patent US 8,095,769
Granted Patent B2
US 8,095,769 · App. 12/194,273 · Granted Jan 10, 2012

Method for address comparison and a device having address comparison capabilities

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,095,769
App. No.
12/194,273
Granted
Jan 10, 2012
Kind
B2
Abstract

A method for address comparison, the method includes: (i) receiving an input address; (ii) determining whether the input address is within a memory segment out of a group of memory segments by comparing, in parallel, the input address to memory segment boundaries of each memory segment of the group; (iii) wherein a comparison between the input address and a memory segment boundary comprises: (a) applying a XOR operation on bits of a most significant portion of the input address and corresponding bits of a most significant portion of the memory segment boundary; (b) ignoring bits of a least significant portion of the input address and corresponding bits of a least significant portion of the memory segment boundary; and (c) comparing, by utilizing a set of full comparators, between bits of an intermediate portion of the input address and corresponding bits of an intermediate portion of the memory segment boundary; wherein a location of bits that form the intermediate portion of the input address and of the memory segment boundary is selected in response to an alignment restriction imposed on the memory segment, to a size of the memory segment and in response to a boundary restriction imposed on the memory segment.

Claims (47)

1. A method for address comparison, the method comprising:

receiving an input address;

determining whether the input address is within a memory segment out of a group of memory segments by comparing, in parallel, the input address to memory segment boundaries of each memory segment of the group;

wherein a comparison between the input address and a memory segment boundary comprises:

applying, by a comparison circuit, a XOR operation on bits of a most significant portion of the input address and corresponding bits of a most significant portion of the memory segment boundary;

ignoring bits of a least significant portion of the input address and corresponding bits of a least significant portion of the memory segment boundary; and

comparing, by utilizing a set of full comparators, between bits of an intermediate portion of the input address and corresponding bits of an intermediate portion of the memory segment boundary;

wherein a location of bits that form the intermediate portion of the input address and of the memory segment boundary is selected in response to an alignment restriction imposed on the memory segment, to a size of the memory segment and in response to a boundary restriction imposed on the memory segment.

2. The method according to claim 1 wherein the receiving is preceded by selecting a segment boundary to provide a highest boundary restriction in view of the size of the memory segment and in view of the alignment restriction.

3. The method according to claim 1 wherein the receiving of the input address is preceded by:

receiving an input memory segment boundary, an output memory segment boundary and a size of a input memory segment;

determining the alignment restriction in response to the input memory segment boundary and the output memory segment boundary; and

determining the location of bits that form the intermediate portion of the input address and of the memory segment boundary in response to the alignment restriction.

4. The method according to claim 1 comprising performing an address translation of the input address, if the input address is within the memory segment out of the group of memory segments.

5. The method according to claim 4 wherein the input address is an input address that belongs to an input memory segment out of the group of memory segments; wherein the performing of the address translation comprises:

replacing bits of the most significant portion of the input address by corresponding bits of a most significant portion of an output memory segment base address;

copying the bits of the least significant portion of the input address; and

adding to the intermediate portion of the input address a difference between the output memory segment base address and an input memory segment base address.

6. The method according to claim 1 comprising determining whether the input address is within the memory segment out of the group of memory segments by comparing, in parallel, the input address to memory segment information of each memory segment of the group;

wherein at least two memory segments have different sizes.

7. The method according to claim 1 wherein the intermediate portion of the input address is less than one half of the input address.

8. The method according to claim 1 wherein the intermediate portion of the input address is less than one third of the input address.

9. The method according to claim 1 wherein the intermediate portion of the input address is smaller than the most significant portion of the input address.

10. The method according to claim 1 comprising selecting which bits of the input address to send to XOR logical gates, selecting which bits of the input address to send to the set of comparators and which bits of the input address to ignore.

11. A system having address comparison capabilities, the system comprising:

an interface for receiving an input address;

an address comparison unit, configured to determine whether the input address is within a memory segment out of a group of memory segments by comparing, in parallel, the input address to memory segment information of each memory segment of the group;

wherein the address comparison unit comprises multiple comparison modules; each comparison module comprises a pair of comparison circuits; whereas a first comparison circuit compares the input address to a memory segment boundary and a second comparison circuit compares the input address to a memory segment end address;

wherein the first comparison circuit comprises multiple XOR gates, a set of full comparators, and a selection circuit;

wherein the selection circuit is configured to:

provide bits of a most significant portion of the input address and corresponding bits of a most significant portion of the memory segment boundary to the multiple XOR gates;

provide bits of an intermediate portion of the input address and corresponding bits of an intermediate portion of the memory segment boundary to the set of comparators;

wherein the multiple XOR gates are configured to apply a XOR operation on the bits of the most significant portion of the input address and corresponding bits of the most significant portion of the memory segment boundary;

wherein the set of full comparators are configured to compare between the bits of the intermediate portion of the input address and the corresponding bits of the intermediate portion of the memory segment boundary;

wherein the address comparison unit ignores bits of a least significant portion of the input address and corresponding bits of a least significant portion of the memory segment boundary; and

wherein the selection circuit is responsive to selection information that determined a location of bits that form the intermediate portion of the input address and of the memory segment boundary; wherein the selection information is determined in response to an alignment restriction imposed on the memory segment, to a size of the memory segment and in response to a boundary restriction imposed on the memory segment.

12. The system according to claim 11 comprising a segment boundary determination unit that is configured to select a segment boundary to provide a highest boundary restriction in view of the size of the memory segment and in view of the alignment restriction.

13. The system according to claim 11 comprising a segment boundary determination unit that is configured to: receive an input memory segment boundary, an output memory segment boundary and a size of an input memory segment; determine the alignment restriction in response to the input memory segment boundary and the output memory segment boundary; and determine the location of bits that form the intermediate portion of the input address and of the memory segment boundary in response to the alignment restriction.

14. The system according to claim 11 comprising an address translation unit that is configured to perform an address translation of the input address, if the input address is within the memory segment out of the group of memory segments.

15. The system according to claim 14 wherein the input address is an input address that belongs to an input memory segment out of a group of memory segments; wherein the address translation unit performs an input to output address translation that comprises:

replacing bits of the most significant portion of the input address by corresponding bits of a most significant portion of an output memory segment base address;

copying the bits of the least significant portion of the input address; and

adding to the intermediate portion of the input address a difference between the output memory segment base address and an input memory segment base address.

16. The system according to claim 11 comprising at least two address comparison modules are associated with memory segments of different sizes.

17. The system according to claim 11 wherein the intermediate portion of the input address is less than one half of the input address.

18. The system according to claim 11 wherein the intermediate portion of the input address is less than one third of the input address.

19. The system according to claim 11 wherein the intermediate portion of the input address is smaller than the most significant portion of the input address.

Assignments (20)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040632 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Sep 21, 2017
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 044209/0047 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
CHANGE OF NAME Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040632/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0553 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0757 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded May 13, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 024397/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2010
From: PORAT, ROTEM; ANSCHEL, MOSHE; PELED, ITAY; STEINBERG, EREZ; ZAMSKY, ZIV
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 024013/0887 →
SECURITY AGREEMENT Recorded Dec 9, 2008
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 021936/0772 →