1460754864-f7f3b67a-7648-4793-b6ac-a78be29c5e75

1. A tunneling magnetoresistive (TMR) device comprising:
a substrate;
a pinned ferromagnetic layer having an in-plane magnetization direction;
a free ferromagnetic layer having an in-plane magnetization direction substantially free to rotate in the presence of an external magnetic field; and
an electrically insulating tunneling barrier layer between the pinned ferromagnetic layer and the free ferromagnetic layer;
wherein the free ferromagnetic layer comprises a first ferromagnetic layer comprising an alloy of one or more of Co, Fe, Ni and B and a ferromagnetic backing layer, the first ferromagnetic layer being between the tunneling barrier layer and the backing layer and the backing layer having a thickness whereby the magnetic moment per unit area of the backing layer is less than two-thirds the total magnetic moment per unit area of the free ferromagnetic layer; and
wherein the backing layer comprises a ferromagnetic material selected from the group consisting of (COxFe(100-x))(100-y)Gey where the subscripts represent atomic percent, x is equal to or greater than 45 and less than or equal to 55, and y is equal to or greater than 5 and less than or equal to 33; (Co2Mn)(100-y)Gey where the subscripts represent atomic percent, and y is equal to or greater than 25 and less than or equal to 33; (Co2Mn)(100-y)Siy where the subscripts represent atomic percent, and y is equal to or greater than 25 and less than or equal to 33; (Co2Fexn(1-x))Ge where x is equal to or greater than 0.2 and less than or equal to 0.5; and (Co2Fexn(1-x))Si where x is equal to or greater than 0.2 and less than or equal to 0.5.
2. The device of claim 1 wherein the backing layer ferromagnetic material is (CoxFe(100-x))(100-y)Gey and y is equal to or greater than 20 and less than or equal to 30.
3. The device of claim 1 wherein the free ferromagnetic layer has a magnetic moment per unit area equivalent to the moment per unit area of a Ni80Fe20 layer having a thickness of at least 40\u212b.
4. The device of claim 1 wherein the first free ferromagnetic layer is an alloy comprising Co, Fe and B and the tunneling barrier layer consists essentially of MgO.
5. The device of claim 1 further comprising a diffusion prevention located between and in contact with the first free ferromagnetic layer and the backing layer.
6. The device of claim 1 wherein the pinned ferromagnetic layer is formed of a ferromagnetic material other than the material of the backing layer.
7. The device of claim 1 wherein the pinned layer is located between the substrate and the free ferromagnetic layer.
8. The device of claim 1 wherein the free ferromagnetic layer is located between the substrate and the pinned layer.
9. The device of claim 1 wherein the pinned layer is an antiparallel (AP) pinned structure comprising a first AP-pinned (AP1) ferromagnetic layer having an in-plane magnetization direction, a second AP-pinned (AP2) ferromagnetic layer adjacent the tunneling barrier layer and having an in-plane magnetization direction substantially antiparallel to the magnetization direction of the AP1 layer, and an AP coupling (APC) layer between and in contact with the AP1 and AP2 layers.
10. The device of claim 9 wherein the AP-pinned structure is a self-pinned structure.
11. The device of claim 9 further comprising an antiferromagnetic layer exchange-coupled to the AP1 layer for pinning the magnetization direction of the AP1 layer.
12. The device of claim 9 further comprising a hard magnetic layer in contact with the AP1 layer for pinning the magnetization direction of the AP1 layer.
13. The device of claim 1 wherein the device is a magnetoresistive read head for reading magnetically recorded data from tracks on a magnetic recording medium, and wherein the substrate is a first shield formed of magnetically permeable material.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A method of processing multicast messages in a data processing system, the data processing system comprising a plurality of compute nodes, each compute node comprising a communications controller, the communications controllers operatively coupled for data communications amongst the compute nodes of the data processing system, each compute node in the data processing system executing at least one logical partition, the data processing system further comprising a hypervisor adapting communications controllers of the compute nodes to logical partitions for multicast communications, the method comprising:
receiving, by more than one of the communications controllers, a multicast message;
responsive to receipt of the multicast message, signaling, by one of the communications controllers, an interrupt in the hypervisor without signaling an interrupt by any other communications controller;
determining, by the hypervisor, that the message received by the interrupt signaling communications controller is a multicast message;
and providing, by the hypervisor, the multicast message to at least one logical partition configured to receive multicast messages;
wherein:
the multicast message further comprises a group identifier, the group identifier specifying a subset of the data processing system’s logical partitions intended to receive the multicast message;
providing the multicast message to at least one logical partition configured to receive multicast messages further comprises providing the multicast message to all logical partitions configured to receive multicast messages;
and the method further comprises determining, by each logical partition receiving the multicast message, whether the receiving logical partition is specified by the group identifier.
2. The method of claim 1, wherein determining that the message is a multicast message further comprises inspecting a header of the message and identifying in the message header a multicast message type.
3. The method of claim 1, further comprising permitting, by the hypervisor at startup of the data processing system, multicast message interrupts on only one communications controller in the data processing system.
4. The method of claim 1, wherein:
the multicast message further comprises a group identifier, the group identifier specifying a subset of the data processing system’s logical partitions intended to receive the multicast message; and
providing the multicast message to at least one logical partition configured to receive multicast messages further comprises providing the multicast message only to logical partitions specified by the group identifier.
5. The method of claim 1, further comprising dropping, by the hypervisor, the multicast message if no logical partition in the data processing system is configured to receive a multicast message.
6. An apparatus for processing multicast messages in a data processing system, the data processing system comprising a plurality of compute nodes, each compute node comprising a communications controller, the communications controllers operatively coupled for data communications amongst the compute nodes of the data processing system, each compute node in the data processing system executing at least one logical partition, the data processing system further comprising a hypervisor adapting communications controllers of the compute nodes to logical partitions for multicast communications, the apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
receiving, by more than one of the communications controllers, a multicast message;
responsive to receipt of the multicast message, signaling, by one of the communications controllers, an interrupt in the hypervisor without signaling an interrupt by any other communications controller;
determining, by the hypervisor, that the message received by the interrupt signaling communications controller is a multicast message;
and providing, by the hypervisor, the multicast message to at least one logical partition configured to receive multicast messages;
wherein:
the multicast message further comprises a group identifier, the group identifier specifying a subset of the data processing system’s logical partitions intended to receive the multicast message;
providing the multicast message to at least one logical partition configured to receive multicast messages further comprises providing the multicast message to all logical partitions configured to receive multicast messages;
and the apparatus further comprises computer program instructions that, when executed, cause the apparatus to carry out the step of determining, by each logical partition receiving the multicast message, whether the receiving logical partition is specified by the group identifier.
7. The apparatus of claim 6, wherein determining that the message is a multicast message further comprises inspecting a header of the message and identifying in the message header a multicast message type.
8. The apparatus of claim 6, further comprising permitting, by the hypervisor at startup of the data processing system, multicast message interrupts on only one communications controller in the data processing system.
9. The apparatus of claim 6, wherein:
the multicast message further comprises a group identifier, the group identifier specifying a subset of the data processing system’s logical partitions intended to receive the multicast message; and
providing the multicast message to at least one logical partition configured to receive multicast messages further comprises providing the multicast message only to logical partitions specified by the group identifier.
10. The apparatus of claim 6, further comprising computer program instructions that, when executed, cause the apparatus to carry out the step of dropping, by the hypervisor, the multicast message if no logical partition in the data processing system is configured to receive a multicast message.
11. A computer program product for processing multicast messages in a data processing system, the data processing system comprising a plurality of compute nodes, each compute node comprising a communications controller, the communications controllers operatively coupled for data communications amongst the compute nodes of the data processing system, each compute node in the data processing system executing at least one logical partition, the data processing system further comprising a hypervisor adapting communications controllers of the compute nodes to logical partitions for multicast communications, the computer program product disposed upon a computer readable medium, wherein the computer readable medium in not a signal, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:
receiving, by more than one of the communications controllers, a multicast message;
responsive to receipt of the multicast message, signaling, by one of the communications controllers, an interrupt in the hypervisor without signaling an interrupt by any other communications controller;
determining, by the hypervisor, that the message received by the interrupt signaling communications controller is a multicast message;
and providing, by the hypervisor, the multicast message to at least one logical partition configured to receive multicast messages;
wherein:
the multicast message further comprises a group identifier, the group identifier specifying a subset of the data processing system’s logical partitions intended to receive the multicast message;
providing the multicast message to at least one logical partition configured to receive multicast messages further comprises providing the multicast message to all logical partitions configured to receive multicast messages;
and the computer program product further comprises computer program instructions that, when executed, cause the computer to carry out the step of determining, by each logical partition receiving the multicast message, whether the receiving logical partition is specified by the group identifier.
12. The computer program product of claim 11, wherein determining that the message is a multicast message further comprises inspecting a header of the message and identifying in the message header a multicast message type.
13. The computer program product of claim 11, further comprising permitting, by the hypervisor at startup of the data processing system, multicast message interrupts on only one communications controller in the data processing system.
14. The computer program product of claim 11, wherein:
the multicast message further comprises a group identifier, the group identifier specifying a subset of the data processing system’s logical partitions intended to receive the multicast message; and
providing the multicast message to at least one logical partition configured to receive multicast messages further comprises providing the multicast message only to logical partitions specified by the group identifier.
15. The computer program product of claim 11, further comprising computer program instructions that, when executed, cause the computer to carry out the step of dropping, by the hypervisor, the multicast message if no logical partition in the data processing system is configured to receive a multicast message.
16. The computer program product of claim 11 wherein the computer readable medium comprises a recordable medium.