Intel Quietly Introduces 3.8GHz P4
BatonRogue writes "I didn't see this anywhere else, but it looks like Intel has quietly launched their Pentium 4 570J running at 3.8GHz. The J denotes Intel's Execute Disable Bit support, which they have also quietly introduced (it seems to save face of being 2nd to support it behind AMD). AnandTech seems to be the only place to have a review of the 570J. It performs reasonably well and even better than AMD in some areas, while falling behind in things like games. AnandTech has a nice one page benchmark comparison of the 570J to AMD's 4000+ as a quick reference."
I can't help but be amused at the way Intel have had to "sneak" the fastest model of their Flagship processor out of the door.
Does anybody remember a few years ago, the Athlon was outperforming anything Intel had to offer, yet they still claimed it was only competing with the Celeron.
Yeah, gaming and high-end CAD. Seriously, the truth is that AMD and Intel could have milked the performance market for another ten years (much like Microsoft is still milking the desktop GUI market) but now, even commodity PCs are so fast that the mass market isn't feeling the slightest pressure to upgrade. At least, they aren't upgrading their CPUs. Printers, cameras, MP3 players, sound cards, WiFi ... sure. But for the vast majority of applications the current crop of CPUs is just total overkill.
The higher the technology, the sharper that two-edged sword.
Neither. At least fourth, possibly not even in the points...
Back in atleast 1980 (and probably earlier), according to my VMS 2.0 Source listings[1] (no, it's not open source, you can't have it), the VAX processor supported no-execute.
Each program is made up of PSECTs (program sections), which have various flags which specify the properties of the memory section when the program is loaded into a processes virtual address space. Such flags as RD and WRT specify memory protection. Flags such as SHR specify whether pages can be shared among processes, and the EXE flag specifies whether a page can be executed. There are a bunch of other flags, concerned with whether code is position independant (PIC), or alter it's score (GBL,LCL), or relocateable (REL).
Typically executable code would go into a PSECT marked RD,NOWRT,EXE,SHR which would allow multiple users running the same installed program to save memory by simply mapping the executable pages into both processes, however neither process could write to those pages. Program data, on the other hand, would typically be mapped into sections marked RD,WRT,NOEXE,NOSHR which would provide each process with their own local data pages, to which they could write, but which they couldn't execute.
Any attempt to do so would trigger an SS$_ACCVIO (the VMS equivalent of a segmentation fault) and bring a typical program to an abrupt end, unless it could handle that error.
So, twenty+ years later, and the two manufacturers are making a big thing about NoExecute. Yawn...
While it will certainly do a lot to prevent the typical buffer overrun attack, by itself it isn't enough, as the overwhelming majority of development tools don't properly protect executable memory. Unless a program has very good reasons to be self-modifying, it needs to not only mark it's DATA pages non-executable, but mark it's code pages non-writable. As the GNU compiler was working on VMS well over a decade ago, if I were to bet on which platform would have the majority of it's compilers 'EXE != WRT' compliant, I know where my money would be.
Jim
[1] DEC Part number AH-H159B-SE ('VAX/VMS V2.0 SRC LST MCRF/226') for the truly interested.