![]() |
Appcrash
I just recently ran across a weird problem. I was noticing that P95 was giving Memory allocation errors during S2 P-1 on any value over 4GB. I did searches and found an article talking about how XP had a 2 GB limit and then I searched the internet to see if Vista had a similiar problem. I found that there was one for the 32 bit, but for the 64 bit the option had been removed. This got me to thinking since I used to have 32 bit Vista on here and sure enough, I was running the 32 bit P95. So, I switched tot he 64 bit version and it started using my entire 6GB (out of 8 on board) allotment with no more allocation errors. Now, however, every time the program completes a S2 P-1 I get:
[Code]Problem Event Name: APPCRASH Application Name: prime95.exe Application Version: 26.6.1.0 Application Timestamp: 4d9f7bf8 Fault Module Name: prime95.exe Fault Module Version: 26.6.1.0 Fault Module Timestamp: 4d9f7bf8 Exception Code: c0000005 Exception Offset: 0000000001831c00 OS Version: 6.0.6001.2.1.0.768.3 Locale ID: 1033 Additional Information 1: 468f Additional Information 2: 4cfcce410b3d87a1e7632947e28a6400 Additional Information 3: 6c75 Additional Information 4: 86236f39369b9888cfc0e77f26c32500 [/code] Once the program crashes I cannot restart P95 until I reboot. Even though the system is only a couple weeks old, I downloaded memtest last night and ran it for 12 hours. It completed 8 passes on the memory with no errors, so I am now checking with the people who understand programming far more than I do to see if a possible solution can be found. |
I thought that P95 got renamed to P64 when running in 64-bit windows....or did I miss something?
|
[QUOTE=Christenson;280715]I thought that P95 got renamed to P64 when running in 64-bit windows....or did I miss something?[/QUOTE]
Uh... no? I'm running 64-bit everything. bcp19, 32 bits means the processor and operating system can only address ~4GB; what you get is actually closer to 3. If you're using 32-bit Vista, you can't run any 64 bit programs. P95 can issue all the commands it wants, but Windows simply cannot handle more than 4GB of memory. Either upgrade to 64 bit Vista or Windows 7. (You also need to have a 64-bit proc, but if you bought it in the last few years it should be.) |
Some quotes from [url]http://en.wikipedia.org/wiki/64-bit[/url] :
[QUOTE]Most CPUs are designed so that the contents of a single integer register can store the address (location) of any datum in the computer's virtual memory. Therefore, the total number of addresses in the virtual memory — the total amount of data the computer can keep in its working area — is determined by the width of these registers. Beginning in the 1960s with the IBM System/360 (which was an exception, in that it used the low order 24 bits of a word for addresses, resulting in a 16 MB [16 × 1024^2 bytes] address space size), then (amongst many others) the DEC VAX minicomputer in the 1970s, and then with the Intel 80386 in the mid-1980s, a de facto consensus developed that 32 bits was a convenient register size. A 32-bit address register meant that 2^32 addresses, or 4 GB of RAM, could be referenced. At the time these architectures were devised, 4 GB of memory was so far beyond the typical quantities (4 MB) in installations that this was considered to be enough "headroom" for addressing. 4.29 billion addresses were considered an appropriate size to work with for another important reason: 4.29 billion integers are enough to assign unique references to most entities in applications like databases.[/QUOTE][QUOTE]64-bit computing started to drift down to the personal computer desktop from 2003 onwards, when some models in Apple's Macintosh lines switched to PowerPC 970 processors (termed "G5" by Apple) and the launch of AMD's 64-bit x86-64 extension to the x86 architecture, itself a response to Intel's Itanium gaining early operating systems support.[/QUOTE][QUOTE]A change from a 32-bit to a 64-bit architecture is a fundamental alteration, as most operating systems must be extensively modified to take advantage of the new architecture, because that software has to manage the actual memory addressing hardware.[17] Other software must also be ported to use the new capabilities; older software is usually supported through either a hardware compatibility mode (in which the new processors support the older 32-bit version of the instruction set as well as the 64-bit version), through software emulation, or by the actual implementation of a 32-bit processor core within the 64-bit processor (as with the Itanium processors from Intel, which include an IA-32 processor core to run 32-bit x86 applications). The operating systems for those 64-bit architectures generally support both 32-bit and 64-bit applications.[18][/QUOTE]And more info on current '64-bit' processors:[QUOTE]Most 64-bit microprocessors on the market today have a physical limit on the amount of memory they can address, considerably lower than the 64-bit limit which would suggest a memory size of 16 exabytes. For example, the AMD64 architecture currently has a 52 bit limit on physical memory and supports a 48-bit virtual address space.[4] This is 4 PB (4 × 1024^5 bytes) and 256 TB (256 × 1024^4 bytes), respectively. A PC cannot contain 4 petabytes of memory (due to the size of current memory chips if nothing else) but AMD envisioned large servers, shared memory clusters, and other uses of physical address space that might approach this in the foreseeable future, and the 52 bit physical address provides ample room for expansion while not incurring the cost of implementing 64-bit physical addresses. Similarly, the 48-bit virtual address space was designed to provide more than 65,000 times the 32 bit limit of 4 GB (4 × 1024^3 bytes), allowing ample room for expansion in the near future without incurring the overhead of translating full 64-bit addresses.[/QUOTE] |
Good info, a small observation: numbers as 10245 should be read as 1024^5 and so on. Copy/Paste miss (wiki uses its own tex-like editor for formulas, which is copy/paste-dumb).
@Dubslow: you still have time to edit, about 45 miutes, if you are around. |
Thanks; I think I got them all. (?)
Edit: Question: [quote]32 bit limit of 4 GB (4 × 1024^3 bytes)[/quote] 4*1024^3 = 2^32, and it has bytes as the units. Wolfram Alpha [URL="http://www.wolframalpha.com/input/?i=2%5E32+bits+to+GB"]confirms that 2^32 [u]bits[/u] is only .5 GB[/URL]. Conclusion: Each address identifies 8 bits, not one 1 bit. Is this correct? If so, is there no useful information stored on computers that is less than 8 bits = byte? And [URL="http://www.youtube.com/watch?v=35LJy-Z3-78"]while we're on the topic...[/URL] |
Correct. See the memory like a matrix, "A x D", with A address-lines and D data-columns (wires). For a 2^20 bytes of memory, you have 8 data wires running from north to south, and 1048576 (2^20) addresses wires, running from east to west. At the intersection of each 2 wires is a small flip-flop that can store a zero or an one. All addresses wires are connected to ground (0) except one which is connected to plus (1), selecting only ONE line at a moment. Then you read the data wires and get your byte. Imagine a village with streets running from east to west (millions of them) and 8 streets running from north to south. At each intersection is a small house with a villager. There is a wolf which can appear at the east on one of the streets, and only the 8 villagers from that street can see him, and they will start running north all 8 at a time.
Do not confuse these (internal) address-lines here, with the 32 (external) address-lines coming out from your processor. That 32 external lines are "[URL="http://en.wikipedia.org/wiki/Demultiplexer"]demultiplexed[/URL]" inside of the memory chip, into 2^32 lines, to select ONE and ONLY ONE byte. then you read that byte using the data lines. Well, this in theory. In practice they are multiplexed all together and written/read in a time fashion (same external lines can be used for address writing and data reading, this is where the latency times come, the chip need some time for "internal cooking" when switching from one to the other, etc). |
Uhhhhh.....
okay. One address is a byte, got it. |
The address is a byte, until you get into modern embedded processors...where the word size, especially the program word size, might be 18 bits or so (Microchip). Also, I think modern RAM modules and memory busses (on DDR3 for example) return a lot more than 8 bits at a time, like maybe 64 or 128 bits, even if the CPU inside can actually address 8 bits. The rest is cached.
|
[QUOTE=Dubslow;280740]Uh... no? I'm running 64-bit everything.
bcp19, 32 bits means the processor and operating system can only address ~4GB; what you get is actually closer to 3. If you're using 32-bit Vista, you can't run any 64 bit programs. P95 can issue all the commands it wants, but Windows simply cannot handle more than 4GB of memory. Either upgrade to 64 bit Vista or Windows 7. (You also need to have a 64-bit proc, but if you bought it in the last few years it should be.)[/QUOTE] To repeat myself: [I] I used to have 32 bit Vista on here. [/I]Since I upgraded to 64 bit Vista but forgot to upgrade to 64 bit P95, I was figuring that was causing the 4GB problem. Regardless, the problem is the APPCRASH not the memory issue. |
Oh. My bad. Sorry :blush:
It did seem like too easy an answer. |
| All times are UTC. The time now is 08:24. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.