![]() |
|
Register | FAQ | The Twelve Commandments | Members List | Calendar | Arcade | Find the Best VPN | Today's Posts | Search |
New Feature Requests Your idea for a cool new feature. Or, a LimeWire annoyance that has to get changed. |
![]() |
| LinkBack | Thread Tools | Display Modes |
|
| ||||
![]() Sun has already announced that it will fully support 64-bit processors very rapidly, as well as dual-cores. All this should come starting next summer, with the release of Windows x64, and the start of Longhorn in next August. The issues are not in Limewire, but in the OS kernels, and in the compiler supports for the new OSes, and more importantly in the support of security within OS and applications. This requires collaboration between OS vendors (Microsoft, Sun, IBM, RedHat, ...), CPU manufacturers (Intel, AMD, IBM) for updates in the kernel drivers and compiler optimizers, and Java VM vendors (mostly Sun, BEA, Oracle and BEA). So Limewire will run mostly without change on future 64-bit Java platforms. For now, there's simply no stable platform to deploy it. There are products already available now, but they are only for tests, and they badly interroperate for now. Limewire should only depend on Java VM support for 64-bit architectures. Until then, Java 1.5 already uses the 64-bit wide registers for internal operations that benefit from them (notably long integers, and Java2D), but the core program is still using 32-bit pointers. Even when OSes will be 64-bit, very few people will benefit of a 64-bit addressing space, because 32-bit is ample enough to support the memory needed by an application including its swapped area. 64-bit is really important mostly for servers that need to address very large databases. I'm not sure that upgrading to 64-bit will be significantly faster (for now the native 64-bit mode is in fact... slower than 32-bit emulation mode with WoW). And it takes more resources on the system (so you need 64-bit processors with larger but expensive internal caches, and more memory). It seems that the dual-core architectures (including HyperThreading) will be more useful immediately.
__________________ LimeWire is international. Help translate LimeWire to your own language. Visit: http://www.limewire.org/translate.shtml |
| ||||||||
![]() Hmm, seems like a professional ;-) Quote:
Dualcores are supported since Java-1.0 since each thread has it won interpreter and a dual-core is nothing more to LW/Java than a second processor. Quote:
Quote:
Well this is something a normal program does not need to care at all, except it uses self-modifying assembler which should not be the case for LW and only very limited for java. Quote:
Quote:
Quote:
However 64-bit pointers are even a drawback of 64-bit processors since they need more memory and have no other advantages (why should copying 64bit from the ram-> processor be faster than copying 32bit?) Quote:
64-bit mode is almost every time faster (except for some special cases)! You completly missed the main-fact why 64-bit mode is a lot faster: more registers. A normal x86 cpu has to live with 8 registers (!!!) whereas 64-bit has 16. This means only 1/2 as much register renaming ![]() Quote:
I would suggest to study computer science or something like that before telling everybody how great and experienced you are. lg Clemens Last edited by Linuxhippy; May 26th, 2005 at 02:45 AM. |
| ||||
![]() The case of the new NX bit in AMD64 processors (and more recently in new Pentiums) was an issue, not in LimeWire itself, but in the JVM that internally generates and uses self-modifying code (in the JIT compiler that compiles the Java Bytecode into native assembly, and then immediately starts running it). Support for it has been patched by Sun (there were tricky cases where a page of memory could be allocated to store the generated assembly, where the page was R/W data and initially not intended to be executable; the CPU driver for Windows is in charge of loading shared program pages in read-only executable mode, and this part of the code is where the Kernel memory mamager collaborates with a CPU-specific driver) Initially there's a compatibility mode where all pages are executable, but the interest of the NX bit comes only when the OS candetermine which page is effectively data, and which page contains valid code. A basic implementation can assume that writable pages are not executable because they are normally not shareable without synchronization across processes; and the OS program loader normally loads pages of program code sections in read-only executable memory. (In rtecent kernels of Windows, these pages are, as much as possible supported by memory-mapped file fragments (unless the file's code need to be patched b the program loader, for example if a DLL is compiled with a base address which conflicts with pages of other DLLs). For the case of JIT in Java, the program loader does not offer help, because the code is not backed by a file (this uses traditional Virtual memory allocator). Don't forget that JIT needs to collaborate with the Java garbage collector, so pages of memory may need to change of status. For security in recent versions of the JVM, there are now different pools of memory pages to avoid sollicitating the OS VM manager which is in charge of setting the NX bit and other access restrictions (including process isolation) within page descriptors that can be used natively by the processor's builtin descriptors cache.
__________________ LimeWire is international. Help translate LimeWire to your own language. Visit: http://www.limewire.org/translate.shtml |
| ||||
![]() The NX bit is an issue in the Java VM, exactly because it creates native code at run time by allocating memory and writing to it, before executing it. Normally, executable code is now writable, and writable memory should not be executable. So the memory block must be allocated differently, and the Java VM for AMD64 must be modified to support the new memory allocation mode. Also You have missed important words in my sentence before sayin "non sense": I said "until then" to refer to other architectures than 32-bit ones. When running in 32-bit mode, no pointer is larger than 32-bit, so the VM is limited to 4GB. A larger VM requires a new port to support 64-bit running mode. [/QUOTE] Quote:
Quote:
Quote:
Quote:
You don't need to adopt such agressive and negative attitude. I've been polite and respectuous with you, and I expect you'll do the same with me. If there are errors in what I say (nobody's perfect), you can correct things. Please adopt a more neutral style when replying to someone in a public area such as this forum. There's no need to flame or insult anyone, or even assert things about someone you don't know, such as the type of studies and courses he has followed. Remember that in public groups, we are not required to reveal all our personnal details or history, and reposnes could have been longer to include the details you lack.
__________________ LimeWire is international. Help translate LimeWire to your own language. Visit: http://www.limewire.org/translate.shtml |
| ||||
![]() Quote:
This is not an issue of Java itself, because such problem can only be solved at the OS kernel level, or in the BIOS itself; however t still requires some work-arounds, notably in highly optimized Java APIs that use MMX, 3DNow, SSE, SSE2 or SSE3. Finally, some BIOSes do support the new 64 bit processors, but still don't support their 64-bit running mode (this means that an application may detect a processor capability, that is not correctly handled at BIOS or OS level, for example when the kernel forgets to save some extra registers when performing native thread switches). Such problem can be solved however with a processor specific driver added to the OS installation. User-mode softwares however must take extra precautions to make sure that no BIOS or OS issue will cause problems, if they want to use native threads, instead of impelmenting their own internal, but slower, multithreading scheduler. There's nothing wrong with Hyperthreading, as it's not more bogous than other multicore (or even SMP) architectures regarding the timing issues that some have reported in cryptology groups. Such security issue is not a processor problem but an implementation problem for the cryptographic libraries.
__________________ LimeWire is international. Help translate LimeWire to your own language. Visit: http://www.limewire.org/translate.shtml |
![]() |
| |
![]() | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Dual Boxing | Stevesy | General Windows Support | 2 | December 20th, 2006 08:27 PM |
Failure to remember screen position when using dual spanning monitors | Kimpatsu Hekigan | Mac OSX | 0 | December 14th, 2005 11:08 AM |
can you get dual layer dvd- ???? | timski | General Mac OSX Support | 0 | March 16th, 2005 02:56 PM |
Limewire Closes when moving from one screen to another on dual monitors | The Jesus | General Linux Support | 1 | November 10th, 2002 07:41 PM |
Can I Install on dual boot if purchased? | Unregistered | Windows | 0 | February 8th, 2002 05:21 AM |